二进制文件为字符串

时间:2013-12-19 09:02:12

标签: c# binary

我想以纯文本形式阅读二进制文件。

是否可以这样做?

想要以纯文本形式阅读整个文件我已经设法使用hex viewer freefileviewer查看数据,但我想通过c#中的编码来实现。我试图读取的二进制文件是一些设备输入,它直接从二进制文件操作我需要修改二进制文件的某些内容并重新发送以进行处理。

2 个答案:

答案 0 :(得分:2)

尝试将binary转换为纯文本:

var binData = File.ReadAllBytes("C:\\path\\to\\file.bin");
var sb = new StringBuilder();
foreach(var b in binData)
    sb.Append(b.ToString("X2"));
var strData = sb.ToString();

您可以在之后编辑它并转换回字节。您可以将文本数据输出到用户并转换回来,如下所示:

var bytes = new List<byte>();
for (int i = 0; i < strData.Length; i+=2)
{
    bytes.Add(Byte.Parse(strData[i].ToString() + strData[i+1].ToString(),
       NumberStyles.HexNumber));
}
File.WriteAllBytes("C:\\path\\to\\file.bin", bytes.ToArray());

答案 1 :(得分:-2)

您应该使用FileStream阅读,然后使用ToBase64String进行转换。 见example

string myString;
using (FileStream fs = new FileStream("\\YourPath", FileMode.Open))
using (BinaryReader br = new BinaryReader(fs))
{
    byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
    myString = Convert.ToBase64String(bin);
}