我有一个包含一些文件的.dat文件。我想读取它的一部分,然后将它写入一个新文件。下面是我的文件看起来像一个十六进制编辑器: 从一个文件读取十六进制并写入另一个文件时遇到问题
如果你看一下我的第一个文件的第一行,在左边它读取 Do041220B。在我的新文件中,第一行显示D.o.0.4.1.2.2.0.B 出于某种原因,它将00放在所有内容之间。
这里是我的代码:
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
int happyint=0x0;
int angryint = 0x1;
switch (textBox1.Text)
{
case "1":
happyint = 0x0;
angryint = 0x610;
break;
case "2":
happyint = 0x620;
angryint = 0xC30;
break;
case "3":
happyint = 0xC40;
angryint = 0x1250;
break;
default:
return;
break;
}
BinaryReader br = new BinaryReader(File.OpenRead(ofd.FileName));
BinaryWriter bw = new BinaryWriter(File.Create(Application.StartupPath + "/" + textBox1.Text + "file.dat"));
bw.BaseStream.Position = 0x0;
for (int i = happyint; i <= angryint; i++)
{
br.BaseStream.Position = i;
bw.Write(br.ReadByte());
bw.BaseStream.Position += 0x1;
}
bw.Close();
br.Close();
这有什么错我的代码?
调试器告诉你什么时候你通过循环? (忽略你在十六进制编辑器右侧看到的内容,并查看左侧的实际十六进制值。比较前四个十六进制值(顶部图像中的“44 6F 30 34”)中的每一个。底部图像中相同的四个值有什么不同? –