28得票5回答
.NET中更快(但不安全)的二进制读取器

我遇到了一个情况,需要从一个非常大的文件中读取二进制数据。因此,我意识到 .NET 中默认的 BinaryReader 实现相当慢。通过使用 .NET Reflector 查看它,我发现了以下内容: public virtual int ReadInt32() { if (this....

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

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

865得票4回答
如何将字节数组转换为字符串

我用两个字符串创建了一个字节数组。如何将字节数组转换为字符串?var binWriter = new BinaryWriter(new MemoryStream()); binWriter.Write("value1"); binWriter.Write("value2"); binWrite...

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

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

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

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

60得票5回答
C#检查二进制读取器文件末尾

我在查找一种检查二进制读取器文件是否已到达末尾的方法,有人建议使用PeekChar,如下所示:while (inFile.PeekChar() > 0) { ... } 不过,看起来我遇到了一个问题。 未处理的异常:System.ArgumentException: 输出字符...

11得票1回答
通过BinaryReader解压缩字节数组得到空字符串

我正在尝试使用二进制读取器将字节数组解压缩并转换为字符串。执行以下代码时,inStream的位置从0更改为数组的长度,但str始终为空字符串。BinaryReader br = null; string str = String.Empty; using (MemoryStream inSt...

15得票4回答
使用WebRequests下载PDF文件

我想自动下载一系列PDF文件,已有一个URL列表。以下是我的代码:HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; var encoding = new UTF8...

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

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

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

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