Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Write() [18/21]

virtual void System.IO.BinaryWriter.Write ( string value)
inlinevirtualinherited

Definition at line 287 of file BinaryWriter.cs.

288 {
289 if (value == null)
290 {
291 throw new ArgumentNullException("value");
292 }
293 if (_useFastUtf8)
294 {
295 if (value.Length <= 42)
296 {
297 Span<byte> span = stackalloc byte[128];
298 int bytes = _encoding.GetBytes(value, span.Slice(1));
299 span[0] = (byte)bytes;
300 OutStream.Write(span.Slice(0, bytes + 1));
301 return;
302 }
303 if (value.Length <= 21845)
304 {
305 byte[] array = ArrayPool<byte>.Shared.Rent(value.Length * 3);
306 int bytes2 = _encoding.GetBytes(value, array);
307 Write7BitEncodedInt(bytes2);
308 OutStream.Write(array, 0, bytes2);
310 return;
311 }
312 }
315 WriteCharsCommonWithoutLengthPrefix(value, useThisWriteOverride: false);
316 }
static ArrayPool< T > Shared
Definition ArrayPool.cs:7
void WriteCharsCommonWithoutLengthPrefix(ReadOnlySpan< char > chars, bool useThisWriteOverride)
void Write7BitEncodedInt(int value)
readonly bool _useFastUtf8
readonly Encoding _encoding
void Write(byte[] buffer, int offset, int count)
virtual byte[] GetBytes(char[] chars)
Definition Encoding.cs:781
virtual int GetByteCount(char[] chars)
Definition Encoding.cs:713

References System.IO.BinaryWriter._encoding, System.IO.BinaryWriter._useFastUtf8, System.array, System.byteCount, System.bytes, System.Text.Encoding.GetByteCount(), System.Text.Encoding.GetBytes(), System.IO.BinaryWriter.OutStream, System.Buffers.ArrayPool< T >.Shared, System.Span< T >.Slice(), System.value, System.IO.Stream.Write(), System.IO.BinaryWriter.Write7BitEncodedInt(), and System.IO.BinaryWriter.WriteCharsCommonWithoutLengthPrefix().