问题标签 [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 投票
4 回答
1368264 浏览

c# - 如何将字节数组转换为字符串

我创建了一个包含两个字符串的字节数组。如何将字节数组转换为字符串?

我想转换result为字符串。我可以使用BinaryReader,但我不能使用BinaryReader(不支持)。

0 投票
1 回答
289 浏览

c# - C# 读取 UTF8 UInt64

我目前正在编写一个 Flac-Decoder,因此我必须读取在 flac-header 中编码的 2 个 UTF8 值。这是在文档中:

他们在他们的 bitreader 文件Bitreader(第 1327 行)中使用自制函数来获取更大的 UTF8(可变块大小)。

我看了看它,翻译成 c# 的代码不是很好。所以我考虑使用带有 UTF8 编码的 binaryreader 并使用这种方法读取:ReadUint64。这有可能吗?结果是否相同,绝对最快的解决方案是什么?

0 投票
4 回答
35740 浏览

c# - 使用 WebRequests 下载 pdf 文件

我正在尝试自动下载一些 pdf 文件,给出一个 url 列表。

这是我的代码:

所以,我知道第一部分有效。我最初是使用 TextReader 获取它并阅读它 - 但这给了我损坏的 pdf 文件(因为 pdf 是二进制文件)。

现在,如果我运行它, reader.PeekChar() 始终为 -1 并且没有任何反应 - 我得到一个空文件。

在调试它时,我注意到 reader.Read() 在我调用它时实际上给出了不同的数字 - 所以可能 Peek 坏了。

所以我尝试了一些很脏的东西

现在我得到一个非常小的文件,里面有一些垃圾,但它仍然不是我想要的。

那么,任何人都可以指出我正确的方向吗?

附加信息:

标头并未暗示其压缩或其他任何内容。

0 投票
2 回答
2603 浏览

c# - 从服务器到客户端接收字节数组?BinaryReader / BinaryWriter 错误?

嗨,我是 C# 的新手,做服务器和客户端以通过 tcp/ip 套接字连接共享文本文件。我使用 BinaryReader / BinaryWriter 从客户端上传到服务器,但从服务器到客户端卡住:从客户端到服务器:

在服务器中:

公共无效ReadCallBack(IAsyncResult ar){

流.Dispose();

现在我尝试从服务器到客户端使用相同的方式但出现错误

stateObject 是错误的?

0 投票
1 回答
929 浏览

c# - 使用文件的字节数组作为字段序列化对象

我正在使用客户端-服务器程序通过网络发送文件。读取文件的字节后(使用File.ReadAllBytes()),我将字节数组设置为对象的字段。然后序列化对象并将其发送给客户端,客户端应该反序列化对象并使用BinaryWriter.

客户端-服务器之间的所有消息都是通过序列化一个名为 Command 的类的对象来传递的。

当文件加载到字节数组时,这种方法似乎会消耗大量内存。

谁能提出另一种机制,我可以一点一点地发送文件,而不会消耗太多内存。是否可以发送文件的内存地址,然后服务器使用客户端上的内存地址(使用循环)一点一点地拉文件?

0 投票
0 回答
101 浏览

c# - 通过 DataGrid 保留负零

我正在使用 BinaryReader 从文件中读取一些浮点数并将它们放入 DataGrid 中。我使用在 DataGrid 中获得的数据将文件保存回来,没有进行任何更改,并且在对原始文件和保存的文件进行二进制比较时,我注意到任何负零(小端序中的 0x00000080)都被转换为正零 (0x00000000)。我知道它可能不会受到伤害,但也许这样保存负零是有原因的,所以我问是否有办法处理负零。

我是否必须覆盖 ReadSingle 和 ReadDouble 并自己进行转换?有没有办法确保浮点数即使在使用 typeof(float) 放入 DataGridColumn 之后仍保持负零,然后使用 BinaryWriter 正确保存回结果文件中?

0 投票
1 回答
250 浏览

c# - 读取包含字符数组的结构

我有以下结构:

我已成功将其写入二进制文件。这是代码:

现在,在阅读这个结构时,字符数组,即 locotype[6] 给了我一个问题。我尝试了 BinaryReader.ReadChars() 方法,但它对我不起作用。请帮助我阅读此结构。

0 投票
1 回答
3990 浏览

c++ - 使用 std::stringstream 读取/写入无符号字节

我正在尝试将无符号字符写入字符串流。

我需要写的信息涉及0x00。我需要将值 0 到 40 写为实际数值,而不是 ASCII 字符。

编辑:澄清一下,我写的不仅仅是0-40的值。它必须是二进制的。进来的这些东西需要保持原样,而不是一旦写入流就变成字符......

以下是我正在做的事情的概要。

最终发生的是 0x00 导致字符串流结束,而 0x01 似乎永远不会到达那里。

我正在以类似的方式阅读:

它似乎不想玩得很好,因为 0x00 被写入并导致整个事情刚刚结束。

就是这样,还是我错过了什么?我尝试过使用 ios_base::binary,也尝试过使用 uint8_t 而不是 TCHAR,但这似乎会造成一团糟。我担心这可能是需要的路线,但我想在我去做之前确定。

长话短说,我正在尝试找到与 C# 的 BinaryReader/Writer 等效的 C++。

谢谢!

0 投票
1 回答
3541 浏览

binaryreader - Visual Basic.NET "输出字符缓冲区太小,无法包含解码字符,编码'Unicode (UTF-8)' fallback '系统

我正在尝试读取一个二进制文件,其中我一直在使用BinaryWriter对象附加数据。我不断收到此错误:

“输出字符缓冲区太小,无法包含解码字符,编码 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback'。”

我的文件有|我怀疑是问题的字符,但我不知道如何解决它。

0 投票
1 回答
2143 浏览

c# - 在 C# 的大二进制文件中搜索十六进制值的有效方法是什么

与HxD编辑器中的相同功能非常相似,我正在实现一个程序,该程序在大二进制文件(> 1 GB)中搜索特定的十六进制值(比如 32 位)。内存是有限的,而且似乎逐块读取BinaryReader类的速度很慢。HxD 在大约 12 秒内返回搜索结果(几乎到达文件末尾),这是可以接受的。