C# Form窗体打开BIN文件并读取二进制数据

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个参数,后面两个可以省略,其参数将作为默认参数处理。

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星papa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值