我想从列表中将二进制数的长列表写入二进制文件。该列表现在都是十六进制数。我的代码下面没有提供我想要的情况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);
}
}
答案 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);