问题标签 [binaryreader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1028 浏览

c# - EndianBinaryReader - 输入流的持续更新?

我正在尝试使用 Jon Skeet 写的EndianBinaryReaderEndianBinaryWriter作为他的misc utils lib的一部分。它非常适合我使用它的两种用途。

TCPClient第一次EndianBinaryReader读取来自网络流 ( 我EndianBinaryReader通过传入来构建TCPClient.GetStream

我现在在从 UdpClient 读取时尝试做同样的事情,但这没有流,因为它的连接较少。所以我得到这样的数据

我可以将这些数据放入内存流

然后创建EndianBinaryReader

但这意味着我每次阅读时都必须创建一个新的字节序阅读器。有没有一种方法可以只创建一个流,我可以使用来自 udp 客户端的数据不断更新输入流?

0 投票
2 回答
1766 浏览

c# - C# 中的 Excel 2007 文件编写器导致文件损坏

我正在使用 BinaryReader 使用 OWA 从 Exchange 邮箱读取 Excel 2007 文件,然后使用 BinaryWriter 将文件写入磁盘。我的问题是当作者完成时这两个文件不匹配。更糟糕的是 Excel 2007 不会打开 writen 文件。

以前 Excel 2003 对下面的解决方案没有任何问题。如果文件是 Excel 2003 格式的文件,则 Excel 2007 没有问题,只要文件格式是 Excel 2007 (*.xlsx)。

二进制阅读器:

二进制写入器:

建议欣然接受。

0 投票
3 回答
2292 浏览

c# - C#处理二进制文件,多线程处理

我有以下处理二进制文件的代码。我想通过使用线程并将二进制文件的每一行分配给 ThreadPool 中的线程来拆分处理工作量。每行的处理时间很短,但是在处理可能包含数百行的文件时,拆分工作负载是有意义的。

我的问题是关于 BinaryReader 和线程安全。首先,我正在做的事情是可以接受的。我觉得最好只将每行的二进制文件传递给 PROCESS_Binary_Return_lineData 方法。

请注意下面的代码是概念性的。我正在寻找这方面的一些指导,因为我对多线程的了解还处于起步阶段。或许有更好的方法可以达到同样的效果,即对每条二进制线进行分割处理。

0 投票
1 回答
474 浏览

c# - 从 Request.Files、StreamReader 或 BinaryReader 或 BufferedStream 读取上传文件的最佳方法是什么?

我有一个表单,用户可以在其中上传多个文件。我正在使用 MVC 2.0,在我的控制器中,我需要调用一个 Web 服务,它是一个常见的导入接口,需要文件以字节 [] 的形式传入。

.NET 将 Request.Files 公开为 HttpFileCollectionBase,我使用提供对 Stream 成员的访问的 HttpPostedFile 或 HttpPostedFileBase 访问文件句柄。

我从流中读取字节的最佳方法是什么?

二进制阅读器?流阅读器?缓冲流?

0 投票
3 回答
6236 浏览

c# - 如何使用 BinaryReader 正确读取 16 字节无符号整数

我需要在 .NET 中解析一个二进制流来转换一个 16 字节的无符号整数。我想使用 BinaryReader.ReadUIntXX() 函数,但没有可用的 BinaryReader.ReadUInt128() 函数。我假设我将不得不使用 ReadByte 函数滚动我自己的函数并构建一个数组,但我不知道这是否是最有效的方法?谢谢!

0 投票
2 回答
5620 浏览

c# - 性能:在 MemoryStream 上使用 BinaryReader 读取字节数组,还是直接读取?

我想知道在从字节数组()创建的aBinaryReader上使用 a 是否会显着降低性能。MemoryStreambyte[]

我想读取二进制数据,并将该数据作为字节数组获取。我目前正在选择两种读取数据的方法,并且必须相应地实现许多读取方法。在每次读取操作之后,我需要读取数据之后的位置,因此我正在考虑使用BinaryReader. 第一种,非 BinaryReader 方法:

第二种方法:

这样Read()的方法将被非常频繁地调用,在相同的数据上连续调用,直到所有数据都被读取。

那么,使用 aBinaryReader感觉更自然,但对性能有很大影响吗?

0 投票
2 回答
3701 浏览

c# - 如何从位置 x 开始的二进制文件中读取 y 值的短裤?

我需要从二进制文件中读取一定数量的短(int16)数据点,从特定位置开始。谢谢!

0 投票
4 回答
439 浏览

c# - 我已经用 vb 和 C# 编写了确切的代码,但它的工作方式不同......逻辑是相同的......我希望

对 C# 有点陌生,并试图扩大我的能力。我在VB中有这段代码:

现在这就是我在 C# 中所拥有的

VB 方式确实正确读取了二进制阅读器并正确索引到下一个位置...... C# 方式没有。它在第一次迭代后失去了轨道……为什么???

请帮忙。

0 投票
3 回答
1452 浏览

c# - 读取包含未知数量结构的二进制文件(C#)

好的,所以我目前有一个包含未知数量的结构的二进制文件,如下所示:

到目前为止,我使用以下内容将所有结构读入 List<>:

我真的不想这样做,因为一次只能向用户显示一个结构,因此一次读取多个记录是没有意义的。所以我认为我可以使用以下内容读取特定记录:

但它不会让我因为它不知道 sTestStruct 的大小,结构不会让我预定义数组大小,所以我该怎么做呢?

0 投票
2 回答
1376 浏览

c# - 在 C# .NET 中读取自定义二进制数据格式

我正在尝试为 .NET 中的 AutoCAD 的 DWG 文件编写一个简单的阅读器。我实际上不需要访问文件中的所有数据,因此为整个文件格式编写读取器/写入器所涉及的复杂性不是问题。

我已经设法阅读了基础知识,例如版本、所有标题数据、部分定位器记录,但是在阅读实际部分时遇到了问题。

问题似乎源于格式使用存储某些数据类型的自定义方法这一事实。我将按照这里的规格进行:

http://www.opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf

具体来说,依赖于读取单个位的类型是我正在努力阅读的类型。问题的很大一部分似乎是 C# 的 BinaryReader 只允许您一次读取整个字节,而事实上我相信我需要能够读取单个位而不是一次读取 8 位或多个位。

可能是我误解了规范以及如何解释它,但如果有人能澄清我如何从流中读取单个位,甚至如何读取上述规范中的某些变量类型需要比简单地读取完整字节更复杂的位操作,那就太好了。

我确实意识到有一些商业图书馆可以做到这一点,但是所有这些图书馆的价格都太高了,以至于无法满足手头的任务。

非常感谢任何帮助。