BIN文件,即二进制文件,广泛应用于嵌入式,我们常用的Firmware通常会以BIN文件或者HEX文件格式存储,因此,对BIN文件的读写操作其实还是很普遍的,在这里,我记录一下我常用到的BIN文件操作 。
首先C# Winform中有Binary文件(BIN文件)的基本操作类 。如下所示
FileStream file_path = new FileStream(文件名, FileMode,FileAccess);
//BinaryReader bin_read = new BinaryReader(file_path);
BinaryWriter bin_write = new BinaryWriter(file_path);
如上所示,如果是要读BIN文件,那么直接定义BinaryReader即可,如果是要写BIN文件,定义BInaryWriter 。读写的基本操作为:
读BIN文件的操作为:bin_read.ReadByte():返回值为读到的Byte值;bin_read.ReadBytes(count);返回值为个数为count的Byte数组 。还有很多不同返回格式,int,char等,我这里不一一赘述 。
写BIN文件的操作为:bin_write.Write(value):其中value就是要写的值,value可以是byte,int或者char等格式 。bin_write.Write(byte[] buffer, int index, int count);这个方法的含义就是将buffer数组中的一部分值(buffer数组的开始索引为index,长度为count),赋值至BIN文件当前位置 。
下面我举一个例子,BIN文件的写,从0写到255,256个byte 。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace TEST
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog save_file = new SaveFileDialog();
save_file.Filter = "BIN文件|*.bin";
if (save_file.ShowDialog() == DialogResult.OK)
{
FileStream file_path = new FileStream(save_file.FileName, FileMode.OpenOrCreate,FileAccess.ReadWrite);
BinaryWriter bin_write = new BinaryWriter(file_path);//创建BIN文件流
byte[] init_byte = new byte[256];
for (int temp = 0; temp < 256; temp++)
{
init_byte[temp] = (byte)temp;
}
bin_write.Write(init_byte, 0, 256);//给BIN文件写内容
bin_write.Flush();
bin_write.Close();
【java bin文件夹 bin文件夹】file_path.Close();
}
}
}
}
文件运行结果为:
bin文件内容
那么写操作完成了,替换操作要怎么操作呢?实际中如果要实现HEX文件转换为BIN文件,那么替换功能将会非常有用,比如将其中的某几个数字改动一下,见代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace TEST
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog save_file = new SaveFileDialog();
save_file.Filter = "BIN文件|*.bin";
if (save_file.ShowDialog() == DialogResult.OK)//打开文件对话框
{
FileStream file_path = new FileStream(save_file.FileName, FileMode.OpenOrCreate,FileAccess.ReadWrite);
BinaryWriter bin_write = new BinaryWriter(file_path);//创建BIN文件流
byte[] init_byte = new byte[256];
for (int temp = 0; temp < 256; temp++)
{
init_byte[temp] = (byte)temp;
}
bin_write.Write(init_byte, 0, 256);//初始化BIN文件
推荐阅读
- java是什么软件
- 如何学习JAVA
- 文件夹如何加密码
- java下载文件到本地 java下载文件
- 文件夹怎么设置密码
- 微信文件夹储存在什么位置
- Java是一门非常讲究的语言
- qq飞车保存的录像在哪,qq飞车保存的录像在哪个文件夹
- qq聊天记录保存在哪里 qq聊天记录保存在哪个文件夹
- 太吾绘卷存档在哪个文件夹-太吾绘卷存档位置介绍