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;//文件过滤,仅打开bindialog.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个参数,后面两个可以省略,其参数将作为默认参数处理。

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

  1. Qt5学习笔记之bin文件合成工具二:bin文件的读取和写入

    目录 概述 实现步骤 1.调整界面并布局. 2.显示文件路径和偏移量 3.bin文件读取 4.将读取的bin文件写入到新的文件. 5.测试运行效果: 6.解决00结束符问题 GitHub下载 概述 上 ...

  2. Matlab读取二进制数据文件

    第一步:函数fopen打开文件 fid=fopen('文件名',读取方式) fid:句柄值 小于0表示打开失败:大于0表示打开成功 文件名:字符串,使用单引号(本文例子'savedata.dat') ...

  3. matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中

    MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...

  4. 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;

    原文链接 FileReader来把文件读入内存,并且读取文件中的数据. readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL ...

  5. matlab处理记事本数据库,如何从Matlab的记事本文件中读取大块数据?

    如何从Matlab的记事本文件中读取大块数据? 我的数据采用以下格式: TABLE NUMBER 1 FILE: name_1 name_2 TIME name_3 day name_4 -0.01 ...

  6. python 读取二进制数据到可变缓冲区中

    想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作.或者你想原地修改数据并将它写回到一个文件中去. 为了读取数据到一个可变数组中,使用文件对象的readinto() 方法.比如 im ...

  7. 《Python Cookbook 3rd》笔记(5.9):读取二进制数据到可变缓冲区中

    读取二进制数据到可变缓冲区中 问题 你想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作.或者你想原地修改数据并将它写回到一个文件中去. 解法 为了读取数据到一个可变数组中,使用文件 ...

  8. SQLite数据库如何存储和读取二进制数据

    1.       存储二进制数据 SQLite提供的绑定二进制参数接口函数为: int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n ...

  9. python输入文件名读取文件_[Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等...

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  10. matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据

    MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...

最新文章

  1. Layout两列定宽中间自适应三列布局
  2. JS面向对象--你真的理解闭包了吗?
  3. Codeforces Round #462 (Div. 2)
  4. 状压[Jxoi2012]奇怪的道路
  5. Google人工智能面试·真·题(附参考答案+攻略)
  6. Dynamics Axapta的B/S解决之道(一)
  7. 优化问题 - 内点法
  8. android图案解锁忘了怎么解,安卓手机解锁图案忘了怎么办?手机解锁密码忘了怎么办?...
  9. rar怎么用计算机打开,解答电脑rar文件怎么打开
  10. 课程表里的表表机器人_机器人课程表
  11. QQ能上网但是浏览器上不了网
  12. python发邮件图片太长显示不出来_小白入门,用python 发送定时邮件,将Dataframe转为邮件正文,链接显示为图片...
  13. uni-app项目开发-----初级入门教程(从0到1制作打包自己的app)
  14. 傻瓜式部署教程2:docker搭建oracle11g数据库
  15. 使用resetFields点击取消时,没有清空「el-form」的内容
  16. HTML中如何使用阿里图标库?
  17. 威猛的 90 后,不等领导下班就先走,《2021 年轻人下班报告》公布
  18. 如何将明细数据关联对照表后生成汇总统计表
  19. fpga时序逻辑(三段式状态机模板、rom实现、边沿检测)
  20. 索尼sw2刷android wear,索尼SmartWatch 2 SW2 应用安装教程

热门文章

  1. ubuntu系统清理垃圾
  2. Linux高清壁纸软件,十个小众的 Linux 桌面软件
  3. Vue 腾讯防水墙验证
  4. 迷你世界怎么显示服务器未连接,打开迷你世界提示网络异常或者连接不上
  5. react在线浏览doc_如何实现 React 中的状态自动保存?
  6. idea环境:Could not initialize class net.sf.cglib.beans.BeanMap
  7. 图深度学习 Deep Learning on Graph
  8. hackRF--初步实战(ubuntu环境)
  9. Shattered Cake
  10. openwrt路由器(红米AC2100)折腾全程——多拨、ipv6负载均衡、ipv6 nat6、ddns、端口转发