Console.WriteLine(file_path.Length); //看一下目前文件大小
bin_write.Seek(255, SeekOrigin.Begin);//修改BIN文件当前位置至第255个字节
bin_write.Write(0x08); //第255个字节改为08
bin_write.Seek(8, SeekOrigin.Begin);//修改BIN文件当前位置至第8个字节
bin_write.Write((byte)0x01);//第8个字节改为01
bin_write.Write((byte)0x02);//第9个字节改为02
bin_write.Write((byte)(0x90));//第10个字节改为90
byte[] buffer = new byte[8];
for (int temp = 0; temp < 8; temp++)
{
buffer[temp] = (byte)(temp + 1);
}
bin_write.Seek(128, SeekOrigin.Begin);//修改BIN文件当前位置至第128个字节
bin_write.Write(buffer, 2, 5);//将Buffer字节数组中的第2到到第7个数赋值到BIN文件的第128到133个字节
bin_write.Write((byte)(0x90));//第134个字节改为08
Console.WriteLine(file_path.Length);//看一下目前的文件大小
file_path.SetLength(256);//文件大小已经超过256,只保留256个字节
Console.WriteLine(file_path.Length);//看一下目前的文件大小
bin_write.Flush();//释放文件资源
bin_write.Close();
file_path.Close();
}
}
}
}
上述代码的运行结果为:
可以看到,BIN文件相应的位置已经更改完成,并且其他位置也没有出现变动 。
这里我需要提一下,在做替换过程中,BIN文件的大小是会发生变化的,因此我用Console.WriteLine(file_path.Length)来监控文件的大小变化 。控制台输出的结果为:
256,259,256
因此,我在代码的最后将文件的长度强行设置为256.这个不用担心数据,实际测试下来,如果没有file_path.SetLength(256)语句,那么结果如下:
可以看到后面几个数据是无效的数据,这个可以直接去掉 。
以上是我平时比较常用的BIN文件操作 。当然,BIN文件的某一位的删除和插入,我还没有比较容易的办法,不过BIN文件的删除或者插入特定字符用的场景非常少,因此没有过多的研究 。希望以上内容对大家有所帮助 。
(今完)
推荐阅读
- java是什么软件
- 如何学习JAVA
- 文件夹如何加密码
- java下载文件到本地 java下载文件
- 文件夹怎么设置密码
- 微信文件夹储存在什么位置
- Java是一门非常讲究的语言
- qq飞车保存的录像在哪,qq飞车保存的录像在哪个文件夹
- qq聊天记录保存在哪里 qq聊天记录保存在哪个文件夹
- 太吾绘卷存档在哪个文件夹-太吾绘卷存档位置介绍
