public override int Read(byte[] buffer, int offset, int count) { if (buf != -1 && count > 0) { // TODO Can this case be made more efficient? buffer[offset] = (byte) buf; buf = -1; return 1; } return base.Read(buffer, offset, count); }