我有一个十六进制字符串,我将其转换为这样的字节:
string hexString = @"504b0304140000000000";
File.WriteAllBytes("0.bin", StringToByteArray(hexString));
//
public static byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
现在我需要添加" 0.bin "或 StringToByteArray(hexString)到现有二进制文件的开头" 1.bin "
我曾尝试将 1.bin 附加到 0.bin ,但字节会添加到1.bin的末尾而不是开头。
byte[] bytes = StringToByteArray(hexString);
using (var stream = new FileStream("1.bin", FileMode.Append))
{
stream.Write(bytes, 0, bytes.Length);
}
回顾:我需要将0.bin + 1.bin的字节顺序组合成一个二进制文件。
答案 0 :(得分:2)
我建议使用临时文件。首先写入0.bin,然后写入1.bin。删除1.bin并将临时文件重命名为1.bin。