C# Form窗体打开BIN文件并读取二进制数据
目标:
使用C# Form窗体打开BIN文件并读取二进制数据
使用的关键类:
C#的作为高级语言文件批量读取一般都是使用文件流处理,这离不开C#的System.IO 类的强大功能。
使实现过程:
这里简述一下实现过程:
1、使用对话框类OpenFileDialog 来打开BIN文件类型的文件获取文件名路径
2、使用FileStream类, 用他来打开文件获取文件长度大小
3、使用读二进制类BinaryReader,按照字节来获取内容
4、最后连接成字符串返回
代码实例:
/// <summary>
/// 打开BIN文件得到路径,读取其中的二进制内容
/// </summary>
/// <returns>返回二进制数字符串</returns>
///
public static string OpenBinFile()
{
string bin_str ="";
byte[] binchar = new byte[] { };
int file_len;
//打开文件类
OpenFileDialog dialog = new OpenFileDialog();
//使用当前目录作为初始目录
dialog.InitialDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
//文件过滤,仅打开bin
dialog.Filter = "bin文件(*.bin)|*.bin";
//关闭选择多文件
dialog.Multiselect = false;
if (dialog.ShowDialog() == DialogResult.OK)
{
//文件流类//用于文件的读写与关闭//来自于System.IO
FileStream fileStream = new FileStream(dialog.FileName, FileMode.Open);
//读二进制文件类
BinaryReader br = new BinaryReader(fileStream,Encoding.UTF8);
//获取bin文件长度
file_len = (int)fileStream.Length;
//得到所有字节
binchar = br.ReadBytes(file_len);
//累加每字节数组转字符串
foreach (byte j in binchar)
{
bin_str += "0x"+ j.ToString("X2")+" ";
}
//关闭 BinaryReader 对象和基础流
br.Close();
}
//返回字符串
return bin_str;
}
小结
1、BinaryReader类 和BinaryWriter 类一个读一个写,内容和方法都是类似,可以相互参考。
2 、二进制类的读写中有很多种方法函数,针对不同的数据类型,也可以穿插使用。需要强调的是类型切记不能使用错误。
3、FileStream 类的实例化时候,有3个参数,后面两个可以省略,其参数将作为默认参数处理。