BinaryWriter和BinaryReader(二进制文件的读写)

C# BinaryWriter类:写入二进制数据 C#中 BinaryWriter 类用于向流中写入内容,其构造方法与上一节《C# BinaryReader》中介绍的 BinaryReader 类中的类似,具体的语法形式如下。 第1种形式: BinaryWriter(Stream output) 第2种形式: BinaryWriter(Stream output, Encoding encoding) 第3种形式: Bin... 阅读详情

C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和 StreamReader类增强了FileStream,它让我们在字符串级别上操作文件,但有的时候我们还是需要在字节级上操作文件,却又不是一个字节 一个字节的操作,通常是2个、4个或8个字节这样操作,这便有了BinaryWriter和BinaryReader类,它们可以将一个字符或数字按指定 个数字节写入,也可以一次读取指定个数字节转为字符或数字。

1.BinaryWriter类

BinaryWriter类以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。


常用的方法:

Close      关闭当前的BinaryWriter和基础流

Seek       设置当前流中的位置

Write      将值写入当前流


2.BinartReader类

BinartReader类用特定的编码将基元数据类型读作二进制值。


常用的方法:

Close         关闭当前阅读器及基础流

Read          从基础流中读取字符,并提升流的当前位置

ReadBytes     从当前流将count个字节读入字节数组,并使当前位置提升count个字节

ReadInt32     从当前流中读取4个字节有符号整数,并使流的当前位置提升4个字节

ReadString    从当前流读取一个字符串。字符串有长度前缀,一次7位地被编码为整数



下面看一个实例:

BinaryWriter 和 BinaryReader 类用于读取和写入数据,而不是字符串。


using UnityEngine;  
using System;  
using System.Text;  
using System.IO;  
using System.Collections;  
using System.Collections.Generic;  
  
public class FileOperator : MonoBehaviour {  
  
    // Use this for initialization  
    void Start () {  
        WriteFile ();  
        ReadFile();  
    }  
  
    void ReadFile()          // 读取文件  
    {  
        FileStream fs = new FileStream ("D:\\MemoryStreamTest.txt", FileMode.Open, FileAccess.Read);  
        BinaryReader r = new BinaryReader (fs);  
  
        //以二进制方式读取文件中的内容  
        int i = r.ReadInt32 ();  
        float f = r.ReadSingle ();  
        double d = r.ReadDouble ();  
        bool b = r.ReadBoolean ();  
        string s = r.ReadString();  
        Debug.Log (i);  
        Debug.Log (f);  
        Debug.Log (d);  
        Debug.Log (b);  
        Debug.Log (s);  
  
        r.Close ();  
        fs.Close ();  
    }  
  
    void WriteFile()     // 写入文件  
    {  
        FileStream fs = new FileStream ("D:\\BinaryStreamTest.txt", FileMode.OpenOrCreate);  
        BinaryWriter w = new BinaryWriter (fs);  
  
        //以二进制方式向创建的文件中写入内容   
        w.Write (666);                   //  整型  
        w.Write (66.6f);                // 浮点型  
        w.Write (6.66);                // double型  
        w.Write(true);                 // 布尔型  
        w.Write ("六六六");         // 字符串型  
  
        w.Close ();  
        fs.Close();  
    }  
          
}  

unity - 二进制文件操作-存储与读取 目标:实现数据存储为二进制文件,然后通过二进制文件解析数据。 目标分为三个阶段:1、将数据结构转化为二进制(至于数据是怎样读取进来的这个就不说了,因为方式比较多,但是读取进来一定都会以特定的数据结构形式来保存)。2、加载二进制文本。3、加载为对应的数据结构。 阶段一:将数据结构转化为二进制有两种方式:1:利用C#的BinaryWrite,2:使用函数把数据转化成byte数组,然后在写入 阅读详情

相关推荐

C#编程-实现在文本文件中的读和写

Write()和WriteLine()方法之间的区别在于Write()方法用于在输出目标上显示指定信息,而WriteLine方法用于显示后跟行结束符的信息。如果文件的数据仅是文本,那么您可以使用StreamReader类和StreamWriter类来完成相应的读和写任务。可以通过结合使用类(如DirectoryInfo和FileInfo类)来使用文件和目录。字节位置是相对于引用点的。在上述代码中,GetFiles()方法用于在目录中检索所有文件的列表。该代码显示目录中的所有文件的列表和他们的大小。

RZer的博客 2017

BinaryWriter

BinaryWriter类提供了简化向流写入基元数据类型的方法。 例如,可以使用Write方法将布尔值写入流作为一个字节值。 类包括支持不同的数据类型的写入方法。 当你创建的新实例BinaryWriter类,提供要写入的流和 (可选) 指定的编码类型和释放后是否将流保留为打开BinaryWriter对象。 构造函数 BinaryWriter() 初始化写入流的 BinaryWriter 类的新实例...

小学生 1754

使用C#的BinaryWriter类进行二进制写入操作

它提供了一种便捷的方式来进行二进制写入操作,适用于需要将数据以二进制格式写入文件或网络流的场景。在上述示例中,我们首先创建了一个文件流,并将其传递给BinaryWriter的构造函数,这样BinaryWriter就可以将数据写入该文件流。这是使用C#的BinaryWriter类进行二进制写入操作的基本示例。你可以根据自己的需求和数据类型进行适当的修改和扩展。请注意,使用BinaryWriter进行写入操作时,要确保读取数据时使用相应的BinaryReader进行读取,以确保数据能够正确解析。

TzData的博客 618

C#文件流二进制文件的读写

二进制文件的写入与读取主要是通过BinaryWriter类和BinaryReader类来实现的。

wenchm的博客 5205

C#中二进制文件读写操作实践指南

本文还有配套的精品资源,点击获取 简介:本文详细讲解了如何在C#中执行二进制文件的读写操作,涵盖了二进制文件的基本概念及其应用场景。通过示例代码,介绍了如何使用 FileStream 、 BinaryReader 和 BinaryWriter 等.NET类库进行数据的序列化和反序列化。同时提供了项目文件解析,帮助读者更好地理解这些操...

weixin_42437253的博客 1705

Ceres-solver examples之pose_graph_3d学习笔记

Ceres-solver examples之pose_graph_3d学习笔记简要说明变量说明关键步骤一、Costfunction的搭建其中包括:二、构造Problem 简要说明 ceres-solver库是google的非线性优化库,可以对slam问题,机器人位姿进行优化,使其建图的效果得到改善。pose_graph_3d是官方给出的二维平面上机器人位姿优化问题,需要读取一个g2o文件,运行程序...

幽冥小龙的博客 3890

C#使用BinaryReader和BinaryWriter读写二进制文件

BinaryReader和BinaryWriter可以读写二进制文件。

小龙在线 1110

无人机频谱侦测与智能识别技术实战解析

本文深入解析无人机频谱侦测与智能识别技术实战应用,涵盖无线电侦测、信号处理和定位技术等核心内容。通过频谱分析、特征提取和机器学习算法优化,实现高精度无人机识别与定位,并分享复杂环境下的应对策略和系统集成经验。

weixin_28419039的博客 488

原 BinaryWriter和BinaryReader(二进制文件的读写)

原文BinaryWriter和BinaryReader(二进制文件的读写) C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和 StreamReader类增强了FileStream,它让我们在字符串级别上操作文件,但有的时候我们还是需要在字节级上操作文件,却又不是一个字节 一个...

weixin_34379433的博客 647

CocosCreator | 自定义启动页之H5

01 效果对比 默认启动页: 自定义启动页: 02 启动页存在的意义 我们在 creator 中的开发的游戏都是基于 cocos engine,所以在展示我们的游戏之前,是必须要先加载 cocos engine,然后才是我们自己的业务代码 流程图如下: 而构建完成后未精简的 cocos engine 代码为 1.9M 如果再加上物理相关代码的话,一共是2M 别忘了,我们自己的首场景也要加载过程哦 所以,从游戏启动,到真...

Valiancer 5895

OpenClaw + Qwen 模型集成飞书完整教程

1、环境要求:- **操作系统**: Windows- **Node.js**: v18+ (推荐 v20+)- **飞书账号**: 需要企业管理员权限(创建应用用)或者个人飞书账号创建个人应用- **网络**: 能访问 GitHub 和飞书开放平台2、安装Node.js下载完成后验证是否安装成功,cmd窗口输入“node --version”,显示版本号即为安装成功(如下图所示)3、获取大模型APIKEY(这里以Qwen为例)

qq_29609427的博客 476

C# 读写二进制文件

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

dotNET跨平台 5434

【胡学长 带你学 Global Mapper 】如何将影像地图转换为国家2000坐标系

多部门联合开展工作坐标数据不匹配怎么办?Hi,我是胡学长!今天教大家如何利用Global Mapper将谷歌影像数据转换为国家2000坐标系影像数据 。

一起来交流学习吧 1万+

使用BinaryWriter和BinaryReader

最后研究的读取器/编写器组是BinaryReader和BinaryWriter,它们都从System.Object直接派生。这些类型可以让我们从基层流中以简洁的二进制格式读取或写入离散数据类型。BinaryWriter类型定义了一个多次重载的Write()方法,用于把数据类型写入基层的流。除了Write()方法,BinaryWriter还提供了另外一些成员让我们能获取或设置从Stream派生的

lnfengran的专栏 712

使用TBtools进行物种间共线性分析

Sequence Toolkit ---Fasta Tools ----ID Prefix (fasta文件)

sunny_dayone的博客 8744

(10)Proteus 8.9上的STM32仿真系列(HAL)---freertos

实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这

qq_35442550的博客 7342

C# 使用BinaryWriter和BinaryReader 及示例

C# 使用BinaryWriter和BinaryReader 及示例

u010117029的博客 1007

保姆级教程:用Python+MM-Agent搭建自己的数学建模AI助手(支持GPT-4o/DeepSeek)

本文提供了一份详细的教程,教你如何使用Python和MM-Agent框架搭建数学建模AI助手,支持GPT-4o和DeepSeek-R1等LLM后端。从环境配置、HMML知识库集成到多LLM适配和建模流程实现,手把手教你构建智能建模系统,提升数学建模效率。

k6l7m8n9的博客 452

BinaryReader,BinaryWriter

  1 using System;  2 using System.IO;  3 using System.Globalization;  4 using System.Text;  5 using System.Data;  6 using System.Xml;  7   8   9 public class BinStream 10 { 11     public BinStream()...

weixin_33798152的博客 180

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

binaryreader java,C# 二进制文件的读写 | 菜鸟教程

using System;using System.IO;namespace BinaryFileApplication{class Program{static void Main(string[] args){BinaryWriter bw;BinaryReader br;int i = 25;double d = 3.14159;bool b = true;string s = "I am ...

weixin_35531779的博客 428

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# 流Stream详解(1)——读写txt和二进制文件

我们知道在磁盘上只会存储二进制数据,文本文件最后也会被保存为二进制文件,我们调用接口读取和写入时虽然用的是string,但到底层一定是byte[]。这就涉及到string到byte[]的编码和byte[]到string的解码,只不过对于文本文件而言,有确定的编码解码规则,我们不需要关心。如果文件非常大,还是要用上面的方法读文件,否则一次性读进来,内存会爆。电脑手机上有各种各样的文件,例如视频文件、图片文件、文本文件,其中读写txt文件是最简单的,有多种方式,,在读取和写入文本时都可以传递文本编码参数。

enternalstar的博客 7673

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

BinaryWriter 、BinaryReader在读写

BinaryWriter 、BinaryReader在读写二进制文件时最好用Write(string)与ReadString(),以此避免乱码,

gyyong的专栏 522
上一篇: C#网络编程基本字段---IPAddress、IPEndPoint
下一篇: unity3d 查找GameObject对象,FindObjectsOfType和FindObjectOfType 之遍历
Le_Sam
博客等级 码龄11年 342粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值