读写二进制文件的一种选择是直接使用流类型;在这种情况下,最好使用字节数组执行读写操作。另一个选择是使用为这个场景定义的读取器和写入器:BinaryReader和BinaryWriter。使用它们的方式类似于使用 StreamReader 和 StreamWriter,但 BinaryReader 和 BinaryWriter 不使用任何编码。文件使用二进制格式而不是文本格式写入。

与 Stream 类型不同,BinaryWriter 为 Write() 方法定义了 18 个重载版本。重载版本接受不同的类型,如下面的代码片段所示,它写入 double、int、long 和string:

public static void WriteFileUsingBinaryWriter(string binFile)
{var outputStream = File.Create(binFile);using (var writer = new BinaryWriter(outputStream)){double d = 47.47; int i = 42;long 1 = 987654321; string s = "sample"; writer.Write(d); writer.Write(i); writer.Write(1);writer.Write(s)}}

为了再次读取文件,可以使用 BinaryReader。这个类定义的方法会读取所有不同的类型,如 ReadDouble、ReadInt32、ReadInt64 和 ReadString,如下所示:

public static void ReadFileUsingBinaryReader(string binFile)
{var inputStream = File.Open(binFile, FileMode.Open); using (var reader = new BinaryReader(inputStream)){double d = reader.ReadDouble(); int i = reader.ReadInt32(); long l = reader.ReadInt64();string s = reader.ReadString();Console.WriteLine($"d: {d}, i: {i},l: {1},s: {s}");}
}

读取文件的顺序必须完全匹配写入的顺序。创建自己的二进制格式时,需要知道存储的内容和方式,并用相应的方式读取。旧的微软 Word 文档使用二进制文件格式,而新的 docx 文件扩展是 ZIP 文件。

 微信公众号 

Dotnet讲堂

C# 读写二进制文件相关推荐

  1. R语言读写二进制文件:WriteBin()、readBin()

    R语言读写二进制文件:WriteBin().readBin() 目录 R语言读写二进制文件:WriteBin().readBin() WriteBin()和readBin()语法

  2. python读写二进制文件(读写字节数据)

    python读写二进制文件(读写字节数据) 你想读写二进制文件,比如图片,声音文件等就是常见的二进制文件. 使用模式为 rb 或 wb 的 open() 函数来读取或写入二进制数据.比如: # Rea ...

  3. 一种C#读写二进制文件的通用方法

    在日常的工作中,我们经常需要进行一些二进制文件或协议的读写操作,用C#解析二进制文件常常是一件比较麻烦且容易出错的工作,本文介绍了一种在C#中实现快速读写二进制文件通用的方法. 以一个解析Mp3 ID ...

  4. python读写二进制文件的方法

    本文实例讲述了python读写二进制文件的方法.分享给大家供大家参考.具体如下: 初学python,现在要读一个二进制文件,查找doc只发现 file提供了一个read和write函数,而且读写的都是 ...

  5. QT学习:读写二进制文件

    使用QDataStream读写二进制文件. 具体用法见如下代码: (1)头文件"mainwindow.h"的具体代码如下: #include <QMainWindow> ...

  6. Java读写二进制文件

    import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io ...

  7. C++实现对象序列化和反序列化(读写二进制文件)操作

    相关函数介绍 在我们的C语言中读写二进制文件一般使用的fread.fwrite全局函数,当然也可以使用更底层的read和write函数.在我们的C++中 通过ofstream 和 ifstream 对 ...

  8. Python+pickle读写二进制文件小案例

    对于二进制文件,不能使用记事本或其他文本编辑软件进行正常读写,也无法通过Python的文件对象直接读取和理解二进制文件的内容.必须正确理解二进制文件结构和序列化规则,才能准确地理解二进制文件内容并且设 ...

  9. 3-6 读写二进制文件

    3-4  读写二进制文件 u本节学习目标:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...

  10. python二进制写入文件_python读写二进制文件的方法

    本文实例讲述了python读写二进制文件的方法.分享给大家供大家参考.具体如下: 初学python,现在要读一个二进制文件,查找doc只发现 file提供了一个read和write函数,而且读写的都是 ...

最新文章

  1. Vuex源码学习(五)加工后的module
  2. .NET基础示例系列之二十:对图片的几种简单处理
  3. 数值比较器实现_电动开窗器、手动开窗器使用介绍
  4. OpenCV camshift算法的实例(附完整代码)
  5. Certificates, Identifiers Profiles创建总结
  6. 一步搞定你疑惑的数据结构与算法系列,原理+实战讲解
  7. 深入MTK平台bootloader启动分析笔记
  8. SQL开头quoted和ansiNULL
  9. mysql max 函数的陷阱
  10. 表白公式计算机,理科生公式表白大全
  11. 郝斌 mysql_郝斌–SQL Server2005学习笔记
  12. jQuery 三级联动
  13. 2.数据的结构 (学校考试必考概念)-数据结构入门(c语言实现)
  14. 冬日丹崖风貌--承德碧霞山
  15. python 文本文件中去重复
  16. Spring之ApplicationContext介绍
  17. 1Mbps带宽到底能够达到什么效果,看看下面的介绍就懂了。
  18. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验三《敏捷开发与XP实践》 实验报告...
  19. unity 位移贴图正弦波面
  20. php正态分布,如何在PHP中生成累积正态分布

热门文章

  1. opencc 1.0.2
  2. 使用 DataX 实现数据同步(高效的同步工具)
  3. 西部广播电视杂志西部广播电视杂志社西部广播电视编辑部2022年第4期目录
  4. oracle indexes作用,数据库-Oracle Indexes EXECUTE对象特权
  5. 一级计算机考试查询成绩ms,计算机一级考试成绩查询
  6. java 防止js注入_java 防止JS注入(使用ESAPI进行编码)
  7. 自行车头盔骑行必备的装备
  8. 通达OA二次开发 小飞鱼应用OA工作流二次开发智能公文系统(三)(图文)
  9. 用python画渐变色彩的多重翅膀几何图形
  10. 戴尔t420服务器显示器无信号,显示器无信号的原因和解决办法汇总,一起来看看吧...