Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字节写入文件,但在字节等于0x00或null时中断?_C# - Fatal编程技术网

C# 如何将字节写入文件,但在字节等于0x00或null时中断?

C# 如何将字节写入文件,但在字节等于0x00或null时中断?,c#,C#,如何将字节数组写入文件,但在即将写入的字节等于0x00或null时中断 我试图将字节转换为字符串并进行修剪,但这不起作用 message = new byte[4096]; clientStream.Read(message, 0, 4096); clientStream.Flush(); File.WriteAllText(AUTH_

如何将字节数组写入文件,但在即将写入的字节等于0x00或null时中断

我试图将字节转换为字符串并进行修剪,但这不起作用

                    message = new byte[4096];
                    clientStream.Read(message, 0, 4096);
                    clientStream.Flush();

                    File.WriteAllText(AUTH_KEY"/email.txt",encoder.GetString(message).Trim());

找到0x00的第一个索引,然后在它之前块写所有内容

您可以将第一个0x00之前的所有内容复制到新数组中,然后调用

File.WriteAllBytes( string path, byte[] bytes)

请包括一些代码。将使您更容易理解您希望实现的目标。为了更好地理解,我添加了一小段代码。我无法更改读取的长度,因为我不知道读取的大小。也许您应该查看由
read
返回的读取字节数。听起来像是xy问题的典型案例:您需要在数组中写入字节,直到字节值为0x00,然后停止写入文件,对吗?您认为读取客户端缓冲区的长度并发送该长度,然后尝试读取是一个坏主意吗?我不确定我是否理解您的意思。你能给我一个简单的背景吗?那要看情况了,你是想把0x00之前的所有东西都写到文件里,还是只在没有0x00的时候才写呢?他说“然后中断”,所以我想他总是想写。我会好好解释的。基本上,我有一个客户端和一个服务器,我试图发送一个字符串,但这个字符串的大小可能会改变,所以我决定将读取长度设置为4096(4kb)但是我只想要对我有用的文本,而不是没有填充的空字节,但是这个字符串有时可能包含空白,我不知道这是否会是一个问题。