将 string/int 列表中的 binary/hexadecimal 值写入 .bin 文件
Write binary/hexadecimal value into .bin file from list of string/int
我想将一长串二进制数从列表写入二进制文件。现在的列表都是十六进制数。我下面的代码没有像案例 1 那样给出我想要的,而是输出案例 2。请帮忙。
案例一:我需要的是一个二进制文件- 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);
}
}
如果你想将单个字节序列写入二进制文件,那么只需一次写入一个 byte
(而不是 4 个字节大小的 int
)并更改下一行
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);
我想将一长串二进制数从列表写入二进制文件。现在的列表都是十六进制数。我下面的代码没有像案例 1 那样给出我想要的,而是输出案例 2。请帮忙。
案例一:我需要的是一个二进制文件- 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);
}
}
如果你想将单个字节序列写入二进制文件,那么只需一次写入一个 byte
(而不是 4 个字节大小的 int
)并更改下一行
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);