问题标签 [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.
c# - 在 C# 中读写
我想在 c# 中读取一个文件(图像)和另一个文件视频,并将两个文件(一个接一个)的所有内容保存(写入)单个 txt 文件中。现在我想再次检索第一个图像文件内容和第二个文件内容分开。是否可以读取视频和图像文件以保存在单个文件中。
file - 逐行读取文本文件
我需要逐行从文本文件中读取数据。每行包含一个字符串或一个整数。我想使用 StreamReader 从文本文件中逐行读取,并使用 StreamWriter 将其写入二进制文件。“写入二进制文件”部分将很容易。“逐行读取文本文件”部分是我需要帮助的部分。
c# - C# BinaryReader.ReadChar 在读取 NetworkStream 时抛出“System.ArgumentException:输出字符缓冲区太小”
读取 C# 时NetworkStream
(从流式 TCP 套接字),BinaryReader.ReadChar
偶尔会抛出异常System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)'
所有缓冲区都有其默认大小(没有一个是手动设置的),设置更大的缓冲区大小不会影响问题。
完全令人沮丧的是:
ReadChar
使用断点并通过调用逐步遍历行时不会发生异常ReadChar
如果前面有,则不会发生异常Thread.Sleep(1000)
(但仍然可以发生较小的超时)BinaryReader
使用on时不会发生异常FileStream
,其中存储了 TCP 服务器答案的所有精确字节。
那么,从套接字流中缓冲单个字符的时间相关问题是什么?
node.js - 缓冲区函数中的 BE 或 LE 是什么意思?
我有一个 PHP 类,用于读取要转换为 NodeJS 的二进制数据,或者在 NodeJS 中找到等效的几个函数。我对这个 BinaryReader 类感兴趣的函数是ReadULong
和ReadUShort
。我相信这些意味着读取无符号长整数(4 字节)和无符号短整数(2 字节)。当我试图在 NodeJS 中找到这些的等价物时,我对在这些之间使用哪个函数感到困惑:
在这种情况下会LE
或BE
代表什么?
我还在 PHP 类上找到了一个常量,上面写着const DEFAULT_BYTE_ORDER = 'L';
. 这和里面的L
一样吗?这就是字节顺序的全部内容吗?L
readUInt32LE
到目前为止,我已经阅读了这些文章:
- 在 cplusplus.com 上查找变量类型的良好来源。
- PHP bytewise 教程和二进制数学
- 如何在 Stackoverflow的 Node.js 问题中逐字节读取二进制文件
如果我能获得更多关于二进制阅读的参考资料,我将不胜感激!
c# - BinaryReader 在处理时抛出 NullReferenceException
我有一个类MyClass
需要文件中的数据,该文件将在整个程序运行期间使用。要读入数据,我有另一个类OpenFileService
,它派生自IDisposable
并使用 aBinaryReader
来读取所有数据:
它是这样使用的:
现在,当文件格式错误并且我自己在try
块中创建异常时,一切正常,没有任何问题,但是当文件实际上无法访问(例如写保护)时br.Dispose();
会创建一个NullReferenceException
,我不知道为什么。我真的把代码精简到了最基本的部分,我希望它不会太长。
编辑:可以从此处接受的答案中找到可能的答案,作为微软推荐的答案。
c++ - 如何二进制读取 7z 存档
我需要帮助来阅读档案中的文件数量及其属性(重量、日期等)。无法使用 SDK。只有二进制读取。
c# - 当 BinaryReader 打开时使用 Stream.Seek 是否安全?
由于 BinaryReader 的底层缓冲策略,我不清楚是否可以读取存储在流中的偏移量,然后在该偏移量处重新定位流以恢复流式传输。
例如,以下代码是否可以:
或者我应该在寻找流之前关闭第一个二进制阅读器,然后重新打开第二个阅读器?
c# - BinaryReader ReadString 指定长度?
我正在开发一个解析器来接收 UDP 信息,解析它并存储它。为此,我使用 aBinaryReader
因为它主要是二进制信息。不过,其中一些将是字符串。MSDN对ReadString()
功能说:
从当前流中读取一个字符串。该字符串以长度为前缀,一次编码为一个整数七位。
我完全理解它,直到“一次七位”,我试图简单地忽略它,直到我开始测试。我正在创建自己的字节数组,然后将其放入 aMemoryStream
并尝试使用BinaryReader
. 这是我最初认为可行的方法:
知道 anint
是 4 个字节(并且玩弄了足够长的时间以找出它BinaryReader
是 Little Endian)我将它传递给 3 的长度和相应的字母。然而str
最终持有\0\0\0
。如果我删除 3 个零并且只有
然后它会Cat
正确读取和存储。对我来说,这与文档说长度应该是整数相冲突。现在我开始认为它们只是表示没有小数位的数字而不是数据类型int
。这是否意味着 aBinaryReader
永远无法读取大于 127 个字符的字符串(因为 01111111 对应于文档的 7 位部分)?
我正在编写一个协议,并且需要在将我们的文档传递给我们的客户之前完全了解我所涉及的内容。
c# - 使用表格文件 (.tbl) 将十六进制转换为字符串
我目前正在从 nes rom(具体来说是 Zelda 2)读取十六进制数据。普通的十六进制编辑器使用表格文件将十六进制转换为文本,因为每个 rom 使用的十六进制数据都不同。有没有在我的应用程序中使用它的本地方法?我正在阅读这样的nes rom:
我正在尝试为 Zelda 2 制作“文本编辑器”,但当然输出不是游戏中使用的真实文本,因为通常您会使用表格文件。Zelda 2 的表格文件如下所示:
c# - 在 C# 中读取 UTF-8 文件
我有这个文件,它使用 UTF-8 编码,我正在尝试读取它。到目前为止,我使用过 BinaryReader、FileStream,我尝试过 File.ReadAllLines。到目前为止,我只得到文件的第一行。
以下是我迄今为止尝试过的一些示例:
所有这些示例仅向我显示文件的一行。您将如何阅读/解析整个文件?
该文件包含一个用户列表,我最终试图读取该文件以找到这些用户名。现在,它只显示文件的第一行,即“UNICORN 3.06”。