gpt4 book ai didi

c# - FileStream Write() 方法仅写入未知符号

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:42 24 4
gpt4 key购买 nike

这是我的代码,它只在 fileout.txt 中写入这个符号。出了什么问题,如何解决?

byte[] bArray = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
FileStream file_out = new FileStream(@"C:\fileout.txt",
FileMode.Create);

file_out.Write(bArray, 2, 4);

file_out.Close();

抱歉,此处未显示符号,但我不知道为什么。这个符号 ar 类似于 upside 和 small r 以及其他一些符号。

最佳答案

您的输出是实际的字节,而不是向说英语的人(以及许多其他语言,但不是全部)代表它们的字符。

虽然 ANPA-1312 仍然被美联社使用并且它使用它们,但您可能会写的字符是一些主要具有历史意义的控件:

START OF TEXT 在消息的实际文本之前。 (0x01,您跳过的是标题的开头。

END OF TEXT 文本结束。还有,Ctrl+C结束一个正在运行的DOS程序就是这个控件。

传输结束再见。用作注销字符。

询问你还在吗?

要打印的数组中还包括:

NULL(空字符,不是null在C#中的意思):在某些格式中用于表示字符串的结尾,“有意义的文本的结尾”等。

START OF HEADER:上面提到过。

确认是的,我在这里。也用于 TCP/IP 握手。

BELL 如果您将此发送给打印机,仍然有打印机会发出响声。

BACKSPACE 打印 u,然后退格,然后 ¨ 曾经是您编写 ü 的方式。请记住,如果 Unicode 看起来比 ASCII 更复杂。实际上,只有一个 ü 更简单。还有 back 和 X 和 back 和 X 和 back 和 X 是一个旧的“删除”!

CHARACTER TAB 这些字符中的第一个字符,您可能会在不是很低级的现代代码中使用这些字符。 “制表符”字符。当然,它本身看起来并不多。

您可能想要输出字符,'0''1' 等等。

你可以:

手动编码它们。 '0' 为 0x30,'1' 为 0x31。这是您应该知道如何去做的事情之一,但实际上 99% 的时间都不是您自己做的。

使用文本编写器。这采用不同类型的值,并且(可选地使用定义的格式规则)输出代表它们的文本。因此

using(FileStream file_out = new FileStream(@"C:\fileout.txt", FileMode.Create)
using(TextWriter tw = new StreamWriter(file_out))
for(int i = 2; i != 6; ++i)
tw.Write(bArray[i]);

这会将字节转换为人类可读的等价物,而且非常高效。这与输出 0x32、0x33、0x34、0x35 相同,在记事本中打开时看起来像“2345”。

如果您从其他地方接收字节(例如从某处创建或获取图像流)或做一些非常低级的事情,您将最想直接写入字节。

关于c# - FileStream Write() 方法仅写入未知符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com