public virtual ulong Read(byte[] destination, ulong start = 0) { lock (Sync) { ulong length = BufferedReadable; byte[] data = Buffer.Read(length); PrimitiveBuffer.Copy(data, 0, destination, start, length); ReadCount += length; return(length); } }
public virtual ulong Read(byte[] destination, ulong start = 0) { lock (Sync) { ulong length = Math.Min(BufferedReadable, (ulong)destination.LongLength); byte[] data = Readable.Read(length); PrimitiveBuffer.Copy(data, 0, destination, start, length); ReadCount += length; return(length); } }
public string ReadStringZT(Encoding encoding, byte size) { PrimitiveBuffer buffer = new PrimitiveBuffer(); ulong block = size / 8u; while (true) { byte[] read = NonBlockingUnsafeRead(block); if (read == null || read.All((v) => v == 0)) { break; } buffer.Write(read); } return(encoding.GetString(buffer.Read(buffer.Length))); }