11得票3回答
当BinaryReader打开时,使用Stream.Seek是否安全?

由于BinaryReader底层的缓冲策略,我不确定在读取存储在流中的偏移量后,重新将流定位到该偏移量以恢复流是否可行。例如,以下代码是否正确:using (var reader = new CustomBinaryReader(inputStream)) { var offset= r...

11得票2回答
如果我读取的字节尚未出现,BinaryReader会做什么?

我正在使用BinaryReader来读取网络数据,其基于NetworkStream。这对我非常有效,但我想了解底层的工作原理,所以我查看了BinaryReader的文档,并发现它非常简略。 我的问题是:当我调用ReadBytes时,如果网络流中不存在bufferSize字节,BinaryRe...

10得票2回答
获取BinaryReader/Writer的编码方式?

.NET的BinaryReader/BinaryWriter类可以在构造时使用指定的Encoding进行String相关操作。 我正在使用扩展方法实现自定义字符串格式,但是我希望它们能够以一种符合在实例化BinaryReader/Writer时指定的Encoding的方式来实现。 似乎没有...

9得票1回答
在C#中使用BinaryReader读取上传文件时,遇到空数组的情况

假设以下代码: Stream file = files[0].InputStream; var FileLen = files[0].ContentLength; var b = new BinaryReader(file); var bytes = b.ReadBytes(FileLe...

9得票3回答
在异步代码中使用BinaryWriter或BinaryReader

我有一个需要写入文件的 float 列表。下面的代码可以实现这个功能,但是它是同步的。 List<float> samples = GetSamples(); using (FileStream stream = File.OpenWrite("somefile.bin")) ...

9得票2回答
在C#中如何获取BinaryReader的当前偏移量?

我有以下源代码: public static void DisplayValues() { float aspectRatio; string tempDirectory; int autoSaveTime; bool showStatusBar; ...

8得票2回答
当读取NetworkStream时,C# BinaryReader.ReadChar会抛出“System.ArgumentException:输出char缓冲区太小”的异常。

阅读C#的NetworkStream(从流式TCP套接字)时,BinaryReader.ReadChar偶尔会抛出异常System.ArgumentException:输出char缓冲区太小,无法包含已解码的字符,编码为'Unicode(UTF-8)'。 所有缓冲区都具有它们的默认大小(没有...

7得票4回答
BinaryReader.ReadChars()存在问题

我遇到了我认为是BinaryReader.ReadChars()方法的问题。当我在一个原始套接字NetworkStream周围包装BinaryReader时,偶尔会出现流损坏,其中正在读取的流失去同步。所涉及的流包含二进制序列化协议中的消息。 我已经追踪到以下原因: 仅在读取Unicod...

7得票3回答
BinaryReader.PeekChar() 读取多少位?

我正在改进一个使用BinaryReader的流读取器类。它包括一个while循环,使用.PeekChar()检查是否存在更多数据以继续处理。 第一个操作是.ReadInt32(),它读取4个字节。如果PeekChar只“看到”了一个字节(或一个位),这似乎不是一种可靠的检查EOF的方法。 ...

7得票2回答
通过NetworkStream BinaryReader/BinaryWriter计算TcpClient传输的字节数

我正在使用围绕TcpClient构建的网络协议,使用BinaryReader从底层NetworkStream中读取字节(反之亦然,使用BinaryWriter进行写入)。 该协议以UTF-8编码传输字符串,并调用reader.ReadString()从流中读取它们(使用writer.Writ...