我试图在文件中的某个位置写一个字节。这就是我现在正在使用的内容:
BinaryWriter bw = new BinaryWriter(File.Open(filename, FileMode.Open));
bw.BaseStream.Seek(0x6354C, SeekOrigin.Begin);
bw.Write(0xB0);
bw.Close();
问题是BinaryWriter.Write(args)在该位置写入一个四字节有符号整数。我希望只在特定位置写一个字节。然后可能两个字节在哪里,我如何指定要写入多少字节?
答案 0 :(得分:3)
变化
bw.Write(0xB0);
到
bw.Write((byte)0xB0);
答案 1 :(得分:2)
完全没有必要使用高级BinaryWriter只是为流写一个简单的字节 - 这样做更有效和整洁:
Stream outStream = File.Open(filename, FileMode.Open);
outStream.Seek(0x6354C, SeekOrigin.Begin);
outStream.WriteByte(0xb0);
(一般来说,你也不应该在将BinaryWriter附加到你的流之后真正寻求 - BinaryWriter应该控制流,并且“在它背后”改变东西“有点脏”
答案 2 :(得分:1)
您可以转换为字节:
bw.Write((byte)0xB0);
这会导致调用Write的正确重载版本。