由于BinaryReader底层的缓冲策略,我不确定在读取存储在流中的偏移量后,重新将流定位到该偏移量以恢复流是否可行。例如,以下代码是否正确:using (var reader = new CustomBinaryReader(inputStream)) { var offset= r...
我正在使用BinaryReader来读取网络数据,其基于NetworkStream。这对我非常有效,但我想了解底层的工作原理,所以我查看了BinaryReader的文档,并发现它非常简略。 我的问题是:当我调用ReadBytes时,如果网络流中不存在bufferSize字节,BinaryRe...
.NET的BinaryReader/BinaryWriter类可以在构造时使用指定的Encoding进行String相关操作。 我正在使用扩展方法实现自定义字符串格式,但是我希望它们能够以一种符合在实例化BinaryReader/Writer时指定的Encoding的方式来实现。 似乎没有...
假设以下代码: Stream file = files[0].InputStream; var FileLen = files[0].ContentLength; var b = new BinaryReader(file); var bytes = b.ReadBytes(FileLe...
我有一个需要写入文件的 float 列表。下面的代码可以实现这个功能,但是它是同步的。 List<float> samples = GetSamples(); using (FileStream stream = File.OpenWrite("somefile.bin")) ...
我有以下源代码: public static void DisplayValues() { float aspectRatio; string tempDirectory; int autoSaveTime; bool showStatusBar; ...
阅读C#的NetworkStream(从流式TCP套接字)时,BinaryReader.ReadChar偶尔会抛出异常System.ArgumentException:输出char缓冲区太小,无法包含已解码的字符,编码为'Unicode(UTF-8)'。 所有缓冲区都具有它们的默认大小(没有...
我遇到了我认为是BinaryReader.ReadChars()方法的问题。当我在一个原始套接字NetworkStream周围包装BinaryReader时,偶尔会出现流损坏,其中正在读取的流失去同步。所涉及的流包含二进制序列化协议中的消息。 我已经追踪到以下原因: 仅在读取Unicod...
我正在改进一个使用BinaryReader的流读取器类。它包括一个while循环,使用.PeekChar()检查是否存在更多数据以继续处理。 第一个操作是.ReadInt32(),它读取4个字节。如果PeekChar只“看到”了一个字节(或一个位),这似乎不是一种可靠的检查EOF的方法。 ...
我正在使用围绕TcpClient构建的网络协议,使用BinaryReader从底层NetworkStream中读取字节(反之亦然,使用BinaryWriter进行写入)。 该协议以UTF-8编码传输字符串,并调用reader.ReadString()从流中读取它们(使用writer.Writ...