Class BufferTextWriter
A TextWriter that writes to a reassignable instance of IBufferWriter<T>.
public class BufferTextWriter : TextWriter, IAsyncDisposable, IDisposable
- Inheritance
-
BufferTextWriter
- Implements
- Inherited Members
Remarks
Using this is much more memory efficient than a StreamWriter when writing to many different IBufferWriter<T> because the same writer, with all its buffers, can be reused.
Constructors
BufferTextWriter()
Initializes a new instance of the BufferTextWriter class.
public BufferTextWriter()
Remarks
When using this constructor, call Initialize(IBufferWriter<byte>, Encoding) to associate the instance with the initial writer to use before using any write or flush methods.
BufferTextWriter(IBufferWriter<byte>, Encoding)
Initializes a new instance of the BufferTextWriter class.
public BufferTextWriter(IBufferWriter<byte> bufferWriter, Encoding encoding)
Parameters
bufferWriterIBufferWriter<byte>The buffer writer to write to.
encodingEncodingThe encoding to use.
Properties
Encoding
When overridden in a derived class, returns the character encoding in which the output is written.
public override Encoding Encoding { get; }
Property Value
- Encoding
The character encoding in which the output is written.
Methods
Dispose(bool)
Releases the unmanaged resources used by the TextWriter and optionally releases the managed resources.
protected override void Dispose(bool disposing)
Parameters
disposingbooltrue to release both managed and unmanaged resources; false to release only unmanaged resources.
Flush()
Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.
public override void Flush()
FlushAsync()
Asynchronously clears all buffers for the current writer and causes any buffered data to be written to the underlying device.
public override Task FlushAsync()
Returns
- Task
A task that represents the asynchronous flush operation.
Exceptions
- ObjectDisposedException
The text writer is disposed.
- InvalidOperationException
The writer is currently in use by a previous write operation.
Initialize(IBufferWriter<byte>, Encoding)
Prepares for writing to the specified buffer.
public void Initialize(IBufferWriter<byte> bufferWriter, Encoding encoding)
Parameters
bufferWriterIBufferWriter<byte>The buffer writer to write to.
encodingEncodingThe encoding to use.
Reset()
Clears references to the IBufferWriter<T> set by a prior call to Initialize(IBufferWriter<byte>, Encoding).
public void Reset()
Write(char)
Writes a character to the text stream.
public override void Write(char value)
Parameters
valuecharThe character to write to the text stream.
Exceptions
- ObjectDisposedException
The TextWriter is closed.
- IOException
An I/O error occurs.
Write(char[], int, int)
Writes a subarray of characters to the text stream.
public override void Write(char[] buffer, int index, int count)
Parameters
bufferchar[]The character array to write data from.
indexintThe character position in the buffer at which to start retrieving data.
countintThe number of characters to write.
Exceptions
- ArgumentException
The buffer length minus
indexis less thancount.- ArgumentNullException
The
bufferparameter is null.- ArgumentOutOfRangeException
indexorcountis negative.- ObjectDisposedException
The TextWriter is closed.
- IOException
An I/O error occurs.
Write(ReadOnlySpan<char>)
Writes a character span to the text stream.
public override void Write(ReadOnlySpan<char> buffer)
Parameters
bufferReadOnlySpan<char>The character span to write.
Write(string?)
Writes a string to the text stream.
public override void Write(string? value)
Parameters
valuestringThe string to write.
Exceptions
- ObjectDisposedException
The TextWriter is closed.
- IOException
An I/O error occurs.
WriteLine(ReadOnlySpan<char>)
Writes the text representation of a character span to the text stream, followed by a line terminator.
public override void WriteLine(ReadOnlySpan<char> buffer)
Parameters
bufferReadOnlySpan<char>The char span value to write to the text stream.