【发布时间】:2011-07-24 04:12:16
【问题描述】:
与使用 StreamReader/Filestream 不同,我想从文件中读取二进制数据并在文本框中显示该数据(格式化)。
【问题讨论】:
标签: c# file binary stream binary-data
与使用 StreamReader/Filestream 不同,我想从文件中读取二进制数据并在文本框中显示该数据(格式化)。
【问题讨论】:
标签: c# file binary stream binary-data
使用 BinaryReader 读取文件。然后将从文件中读取的字节数组编码为base64格式,并在文本框中分配base64编码的字符串
更新:
从文件中读取的字节数组可以在分配给文本框显示之前以各种文本编码进行编码。看看 .net 类中与字符编码格式相关的以下命名空间:
在进行从字节数组到编码字符串的任何转换之前,请确保您知道目标文件的确切编码。或者您可以检查该文件的 BOM 字节数。
更新(2):
请注意,您不能使用任何 System.Text 类转换非文本文件(例如图像文件、音乐文件)。否则在文本框中显示对您来说毫无意义。
【讨论】:
当需要读取二进制文件时,有不同的情况,因为不清楚你真正想要实现的目标是:
【讨论】:
那么二进制数据和潜在的不可打印数据一样吗?好吧,如果您想将数据打印为十六进制字符串,请将数据作为字节数组,然后转换为十六进制表示。
string path = @"path\to\my\file";
byte[] data = File.ReadAllBytes(path);
string dataString = String.Concat(data.Select(b => b.ToString("x2")));
textBox.Text = dataString;
【讨论】: