从binary / int列表中将二进制/十六进制值写入.bin文件

时间:2016-11-14 08:14:47

标签: c# hex binarywriter

我想从列表中将二进制数的长列表写入二进制文件。该列表现在都是十六进制数。我的代码下面没有提供我想要的情况1,而是输出案例2.请帮忙。

案例1:我需要的是二进制文件 - 1A0F83 .....

案例2:但不是 - 314130463833 .....

List<string> list = new List<string>(new string[]{"1A", "0F", "83" }); 

using (var s = File.Open("test.bin", FileMode.Create))
{
    var tw = new BinaryWriter(s);                

    foreach (string i in list) // Loop through all strings
    {               
        tw.Write(i);    
    }                             
}

1 个答案:

答案 0 :(得分:0)

如果要将单个字节序列写入二进制文件,则一次只写一个byte(不是int,大小为4个字节)并更改以下行

tw.Write(i);

到此:

tw.Write((byte)i);

或者如果你想稍微清理你的代码,提高更长序列的性能并使其可编辑,你可以使用它:

var list = new List<byte> { 0x1A, 0x0F, 0x83 }.ToArray();

using (var s = File.Open("test.bin", FileMode.Create))
using (var tw = new BinaryWriter(s))
    tw.Write(list);