private static BinaryFormatter Transfer = new BinaryFormatter(); public int BinaryFileSav() { //-----二进制文件写入并存储 saveFileDialog1.Filter = "数据文件(*.tifs)|*.tifs"; saveFileDialog1.Title = "文件存储"; saveFileDialog1.FileName = "新数据文件.tifs"; saveFileDialog1.ShowDialog(); Stream flstr = new FileStream(saveFileDialog1.FileName, FileMode.Create); BinaryWriter sw = new BinaryWriter(flstr, Encoding.Unicode); byte[] buffer = ChangeObjectToByte(obj); sw.Write(buffer); sw.Close(); flstr.Close(); return 0; } public int BinaryFileOpen() { //-----二进制文件读取 openFileDialog1.Filter = "数据文件(*.tifs)|*.tifs"; openFileDialog1.Title = "文件打开"; openFileDialog1.FileName = ""; openFileDialog1.ShowDialog(); Stream flstr = new FileStream(openFileDialog1.FileName, FileMode.Open); BinaryReader sr = new BinaryReader(flstr, Encoding.Unicode); byte[] buffer = sr.ReadBytes((int)flstr.Length); FrameForm.Tifs.fileinfo = (FileInfo)ChangeByteToObject(buffer); sr.Close(); flstr.Close(); return 0; } #region ArrayList数组的二进制转化实现 /// <summary> /// 序列化,存储用 /// </summary> /// <param name="msg">要序列化的对象</param> /// <returns>转化成的byte</returns> private static byte[] ChangeObjectToByte(object obj) { try { MemoryStream ms = new MemoryStream(); //----将对象序列化 Transfer.Serialize(ms, obj); byte[] buffer = ms.GetBuffer(); return buffer; } catch (Exception err) { return null; } } /// <summary> /// 反序列化,读取用 /// </summary> /// <param name="buffer">二进制流</param> private static object ChangeByteToObject(byte[] buffer) { try { MemoryStream ms = new MemoryStream(buffer, 0, buffer.Length, true, true); //----将流反序列化为对象 object obj = Transfer.Deserialize(ms); return obj; } catch (Exception err) { return null; } } #endregion

obj代表任意数据类型。另外,最好在该类前加注[Serializable] //----必须令相应的类实现可序列化标记接口   字样

C#实现文件二进制存储相关推荐

  1. mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...

    <Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)>要点: 本文介绍了Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可 ...

  2. 打开dll文件时模块加载失败,请确保二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题

    ** 打开dll文件时模块加载失败,请确保二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题 **打开dll文件时模块加载失败,电脑提示请确保二进制存储在指定的路径中,或 ...

  3. python文件、存储、压缩

    python文件.存储.压缩  回忆:在第九章又强调了"保留分隔符"这样的核心笔记,其实在上章已经解释了.其实就是为了不同系统之间文件结束符的统一性.就是\n\r, \n或者其他系 ...

  4. 64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中。

    64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中 我的解决方案: 1.找到位于windows下的syswow64文件夹下的cmd 2.并拷贝需注册的ocx文件到sys ...

  5. .shp文件的存储结构是怎样的?底层读取shapefile文件

    .shp文件的存储结构是怎样的?底层读取shapefile文件 基础知识 shp的存储结构 python 字节流读取Shp文件 基础知识 大家都比较熟悉shp文件,它是GIS软件可以读取的矢量文件.但 ...

  6. Matlab读取TDMS文件并存储为mat格式

    前言 TDMS是labVIEW常用的一种数据存储格式,其以二进制的方式进行存储,特点是占用磁盘空间小,且支持数据流高速写盘,常见于高速采集系统.若是需要用Matlab对其进行数据处理,不可避免的需要使 ...

  7. 【CEPH-初识篇】ceph详细介绍+“ 一 ” 篇解决ceph集群搭建, “ 三 ” 大(对象、块、文件)存储使用

    文章目录 前言 简介(理论篇) 逻辑结构 数据存储原理 三大存储 RADOSGW(对象网关) BRD(块存储) CEPHFS(文件存储) 所有组件结合起来 POOL.PG简介 组件结合 搭建ceph( ...

  8. C语言实现通讯录【二】(动态内存开辟,文件数据存储)

    C语言实现通讯录[二] 在C语言实现通讯录[一]的基础上进行优化,主要实现两大模块: 动态内存开辟 文件数据存储 动态内存开辟: 考虑到通讯录的大小无法固定,在C语言实现通讯录[一]版本上定义一个足够 ...

  9. h5如何上传文件二进制流_h5pal是怎样练成的 - 二进制处理篇

    书接上回,竟然已经 10 个月过去了,真是羞于见人(并没有羞,脸皮太厚,咬我啊). 本期节目将会介绍在 JS 中如何高效率的处理二进制文件,这里的"高效率"不仅限于性能方面,还包括 ...

最新文章

  1. ts转换mp4 linux_佳佳MPEG4格式转换器官方版下载-佳佳MPEG4格式转换器v6.5.5.0下载
  2. 03-vue-router
  3. 【学习笔记】JS进阶语法一事件基础
  4. Delphi使用Zlib
  5. [zz]Ubuntu下使用Eclipse和PyDev搭建完美Python开发环境
  6. h5的语义化部分_Html5新增的语义化标签(部分)
  7. SAP License:SAP顾问面试问题
  8. VC++ COMBO BOX控件的使用
  9. 自己写的php curl库实现整站克隆
  10. [linux驱动]linux块设备学习笔记(二)
  11. Neuron:Neural activities in V1 create a bottom-up saliency map
  12. 这些小工具让你的Android开发更高效
  13. python程序结构有哪几种_Python程序3种控制结构的由来
  14. 【图像分割】基于matlab FCM侧扫声呐图像分割【含Matlab源码 1478期】
  15. Spring Boot 2.0 从入门到精通 From Zero to Hero with Spring Boot - Brian Clozel
  16. 网易云音乐产品体验报告
  17. PHP实现PayPal支付对接
  18. iPhone,iPad如何获取WIFI名称即SSID
  19. Android 亮度调节
  20. 移动电影院开启5G全新征程

热门文章

  1. java第五章循环结构总结_Java理论学习三分钟-流程控制之循环结构(3)
  2. 复合选择器-链接伪类选择器(HTML、CSS)
  3. PTA—比较大小(C语言)
  4. Open3d之点云全局配准
  5. 8月7日科技联播:人民日报发推欢迎Google回归,李彦宏回应非常有信心再赢一次...
  6. Android 7.1 App Shortcuts使用
  7. 易驾佳智能机器人教练_我市首个“机器人教练”上岗 驾校开启人工智能教学新模式...
  8. nacos 负载策略_Nacos(一):Nacos介绍
  9. 基于FPGA的RGB图像转 Ycbcr图像实现 gray图像
  10. FPGA实现VGA显示(四)——————读取ROM显示彩色图片(a)