这是我的代码,它只在 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();
Run Code Online (Sandbox Code Playgroud)
抱歉,这里没有显示符号,但为什么我不知道。这个符号有点像 upside 和 small r 和其他一些符号。
您的输出是实际字节,而不是向说英语的人(以及许多其他语言,但不是全部)表示它们的字符。
您将编写的字符是一些主要具有历史意义的控件,尽管美联社仍在使用 ANPA-1312 并使用它们:
START OF TEXT 在消息的实际文本之前。(0x01,你跳过的是标题的开始。
END OF TEXT 文本结束。此外,Ctrl+C 结束正在运行的 DOS 程序就是这个控件。
传输结束再见。用作注销字符。
查询你还在吗?
要打印的数组中的那些还包括:
NULL(空字符,不是nullC# 中的意思):在某些格式中用于表示字符串的结尾、“有意义的文本的结尾”等。
标题开头:上面提到过。
确认 是的,我在这里。也用于 TCP/IP 握手。
贝尔 如果你把这个寄给他们,那里仍然有打印机会发出叮当声。
BACKSPACE 打印u,然后退格,然后¨是您曾经的书写方式ü。请记住,如果 Unicode 看起来比 ASCII 更复杂。其实有一个更简单的ü. 还回来,X,回来,X,回来,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]);
Run Code Online (Sandbox Code Playgroud)
这会将字节转换为人类可读的等价物,并且非常有效。这与输出 0x32、0x33、0x34、0x35 相同,在记事本中打开时看起来像“2345”。
如果您从其他地方接收字节(例如从某处创建或获取图像流)或执行非常低级的操作,您将主要希望直接写入字节。
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |