internal class BytesWriter()

in TeamCity.VSTest.TestLogger/BytesWriter.cs [5:37]


internal class BytesWriter(string fileName) : IBytesWriter
{
    private FileStream? _stream;
    private BinaryWriter? _writer;

    public void Write(byte[] bytes)
    {
        EnsureOpened();
        _writer!.Write(bytes);
    }

    public void Flush()
    {
        _writer?.Flush();
    }

    public void Dispose()
    {
        _writer?.Flush();
        _stream?.Dispose();
    }

    private void EnsureOpened()
    {
        if (_stream != default)
        {
            return;
        }

        _stream = File.Open(fileName, FileMode.CreateNew, FileAccess.Write, FileShare.Read);
        _writer = new BinaryWriter(_stream);
    }
}