问题标签 [binarywriter]

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 投票
1 回答
358 浏览

c# - BinaryWriter 不寻常的十六进制

我在通过 BinaryWriter 传输数据时遇到了一些问题。

当我尝试发送

它进入输出到 0x00 - 通过

是什么导致了这个问题?

问候

0 投票
1 回答
4777 浏览

.net - 如何在文件末尾仅使用 BinaryWriter 附加数据?

也许在 Stackoverflow 中提出了类似的问题,但我似乎无法找到解决问题的方法。

我只是想打开一个可写的二进制流,并能够使用相同的流将数据附加到文件中。显然,如果您打开一个文件进行写入,它将删除其中包含的所有数据并开始一个新数据。另外,如果你打开一个文件只是为了阅读,你不能写,只能读。人们确实在网上建议使用两个单独的流——一个用于阅读,另一个用于写作。我认为这在这种情况下行不通。

看看我的示例代码,我想做类似的事情:

0 投票
1 回答
3307 浏览

c# - 如何使用 BinaryWriter 写入大文件

我有一些编写大型二进制文件的程序。我遇到了这个问题:有时我的程序在文件写入时崩溃而没有抛出任何错误(块捕获不执行。我编写了一些测试控制台应用程序来查找并解决这个问题。像这样:

我有这样的结果:有些文件的大小为 0。例如编号为 8、10、15、17、...的文件

在我家(功能较弱)的计算机上,所有文件都已正确写入,在我的工作计算机上,其中一些文件的大小为 0。如果我取消注释 Thread.Sleep(1); (或以其他方式减慢我的程序)所有文件在我的工作计算机上也是正确的,但是这样的“修复”在我的服务器计算机上不起作用。谁能解释发生了什么错误,我该如何解决?我尝试使用 try-cath-finally 代替使用,但 catch 块不会捕获此错误。

0 投票
2 回答
2603 浏览

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

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

在服务器中:

公共无效ReadCallBack(IAsyncResult ar){

流.Dispose();

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

stateObject 是错误的?

0 投票
1 回答
3176 浏览

c# - 将图像写入 Process.StandardInput.BaseStream 的更快方法

我试图将大量桌面捕获的图像发送到编码器(FFmpeg)标准输入。

以下代码示例有效。

CaptureScreen()功能在 5-10 毫秒内提供图像。

如果我将图像保存在 MemoryStream 中,几乎不需要时间。

但我只能每 45 毫秒将 1 个图像保存到 proc.StandardInput.BaseStream。

问题是:

我可以更快地完成保存过程吗?

我尝试以这种方式获得稳定的 60 fps

0 投票
1 回答
245 浏览

c# - BinaryWriter 在 AppendMode 的开头写入脏字符

可能重复:
为什么 BinaryWriter 会在流的开头添加乱码?你如何避免它?

该问题发生在 NTService 的执行过程中,该 NTService 在文件中写入了许多报告。这是我使用的简单代码:

输出在文件中正确刷新,但在每次写入开始时会出现两个奇怪的字符 (�)。我在多台机器上部署了该服务,但问题仍然存在。

在此先感谢您的帮助。

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 投票
2 回答
5148 浏览

c# - 重新打开后继续在文件末尾写入

[在 C# 中]如果我保持文件打开,我可以写入多个输入并保存它,但如果我关闭它,重新打开它并再次开始写入,它会从开头开始并覆盖所有内容。我试着用它打开它FileMode.Append并做一个File.Seek(0, SeekOrigin.End);

这是文件打开代码:

我怎么能保证它总是会写到最后呢?

0 投票
1 回答
1664 浏览

c# - BinaryWriter.Write(Int32)

我有一个包含这样的结构的文件:

对于这个词,我确保在写入之前将其扩展到 30 个字节,并且我按原样写入 pos,因为我知道 int32 是 4 个字节。

这是要写入文件的代码:

代码编译并且运行良好,除了一件事: int32 没有被写入。如果我使用记事本++检查文件,我会看到 int 应该在哪里:SOH NULL NULL NULL 我查找了 SOH,它应该是 SOH(标题开头):

该字符用于指示标题的开始,可能包含地址或路由信息。

你们中的任何人都知道为什么我的 int32 不写吗?

代码供您尝试(该文件将保存在项目的 bin 调试文件夹中):

0 投票
1 回答
64 浏览

c# - 这怎么可能缩短?

我在这里有这段代码:

我想概括这个函数,因为 try/catch & Write(Command) 在这些方法中的每一个上总是相等的。现在我想知道最有效的方法是什么?

基本上我想到了一个这样的方法:

但是,我无法指定我可能拥有的任何其他参数(例如字符串消息)。

另一种可能性是将参数更改为类型 object 但随后BinaryWriter不知道要访问什么,我每次都必须进行明确的对话。有任何想法吗?