byte []到字符串转换似乎不像我想要的那样工作

Iva*_*nov 1 c# text

我正在尝试在文本文件中显示字节数组的内容.

这是我的代码:

        var writer = new System.IO.StreamWriter(Application.StartupPath + @"\B323.txt");
        writer.Write(data.ToString());
        writer.Close();
        writer.Dispose();
Run Code Online (Sandbox Code Playgroud)

data是一个byte []数组.

输出是"System.Byte []",为什么?

我正在尝试显示这个数组的内容,问题出在哪里?

Jon*_*eet 7

当你打电话byte[].ToString()那只是回来System.Byte[].你是如何打算转换字节数组的?有许多方法可以将字节转换为字符串.

如果你想把它作为"十六进制转储"你可以BitConverter.ToString(byte[])产生诸如的输出

5B-3E-5D
Run Code Online (Sandbox Code Playgroud)

这就是你要追求的吗?如果您确实只想将字节写入文件,因为它们已经表示编码文本,那么您应该使用a FileStream而直接写入它们.

(作为旁白的其他要点:你应该使用一个using语句来处理作者;你不需要调用close因为你已经在处理;这File.WriteAllText是一个更简单的方法来开始.)

  • `Object.ToString()`的默认实现是转储类型名称.数组不会覆盖它. (2认同)