C# 中的 读取和写入二进制文件函数

首页 / C#入门教程 / C# 中的 读取和写入二进制文件函数

BinaryReaderBinaryWriter类用于读取和写入二进制文件。

BinaryReader类

BinaryReader类用于从文件中读取二进制数据。通过将FileStream对象传递给其构造函数来创建BinaryReader对象。

Sr.No.Method & 描述
1

public override void close()

它关闭BinaryReader流。

2

public virtual int read()

从基础流中读取字符并前进流的当前位置。

3

public virtual bool ReadBoolean()

从当前流中读取布尔值,并将流的当前位置向前推进一个字节。

4

public virtual byte ReadByte()

从当前流中读取下一个字节,并将流的当前位置向前推进一个字节。

5

public virtual byte[]ReadBytes(Int Count)

从当前流中读取指定数目的字节到字节数组中,并将当前位置向前推进该数目的字节。

6

public virtual char ReadChar()

从当前流中读取下一个字符,并根据使用的编码和从流中读取的特定字符前进流的当前位置。

7

public virtual char[]ReadChars(Int Count)

从当前流中读取指定数量的字符,以字符数组形式返回数据,并根据使用的编码和从流中读取的特定字符前进当前位置。

8

public virtual Double ReadDouble()

从当前流中读取8字节的浮点值,并将流的当前位置向前推进8个字节。

9

public virtual int ReadInt32()

从当前流中读取4字节有符号整数,并将流的当前位置向前推进4个字节。

10

public virtual string ReadString()

从当前流中读取字符串。字符串以长度作为前缀,一次编码为七位的整数。

BinaryWriter类

BinaryWriter类用于将二进制数据写入BinaryWriter对象是通过将FileStream对象传递给其构造函数来创建的。

Sr.No.Function & 描述
1

public override void close()

它关闭BinaryWriter对象流。

2

public virtual void flush()

清除当前writer的所有缓冲区,并使任何缓冲数据写入基础设备。

3

public virtual long Seek(int offset,SeekOrigin Origin)

无涯教程网

设置当前流中的位置。

4

public virtual void Write(bool value)

将一个字节的布尔值写入当前流,0表示false,1表示true。

5

public virtual void Write(byte value)

将无符号字节写入当前流,并将流位置向前推进一个字节。

6

public virtual void write(byte[]buffer)

链接:https://www.learnfk.comhttps://www.learnfk.com/csharp/csharp-binary-files.html

来源:LearnFk无涯教程网

将字节数组写入基础流。

7

public virtual void write(Char Ch)

将Unicode字符写入当前流,并根据使用的编码和正在写入流的特定字符前进流的当前位置。

8

public virtual void write(char[]chars)

将字符数组写入当前流,并根据使用的编码和正在写入流的特定字符前进流的当前位置。

9

public virtual void write(double value)

将一个8字节的浮点值写入当前流,并将流位置向前推进8个字节。

10

public virtual void Write(int value)

将四个字节的有符号整数写入当前流,并将流位置前进四个字节。

11

public virtual void Write(string value)

BinaryWriter的当前编码中将长度前缀的字符串写入此流,并根据所使用的编码和正在写入流的特定字符前进流的当前位置。

下面的示例演示读取和写入二进制数据-

using System;
using System.IO;

namespace BinaryFileApplication {
   class Program {
      static void Main(string[] args) {
         BinaryWriter bw;
         BinaryReader br;
         
         int i = 25;
         double d = 3.14157;
         bool b = true;
         string s = "I am happy";
         
         //create the file
         try {
            bw = new BinaryWriter(new FileStream("mydata", FileMode.Create));
         } catch (IOException e) {
            Console.WriteLine(e.Message + "\n Cannot create file.");
            return;
         }
         
         //writing into the file
         try {
            bw.Write(i);
            bw.Write(d);
            bw.Write(b);
            bw.Write(s);
         } catch (IOException e) {
            Console.WriteLine(e.Message + "\n Cannot write to file.");
            return;
         }
         bw.Close();
         
         //reading from the file
         try {
            br = new BinaryReader(new FileStream("mydata", FileMode.Open));
         } catch (IOException e) {
            Console.WriteLine(e.Message + "\n Cannot open file.");
            return;
         }
         
         try {
            i = br.ReadInt32();
            Console.WriteLine("Integer data: {0}", i);
            d = br.ReadDouble();
            Console.WriteLine("Double data: {0}", d);
            b = br.ReadBoolean();
            Console.WriteLine("Boolean data: {0}", b);
            s = br.ReadString();
            Console.WriteLine("String data: {0}", s);
         } catch (IOException e) {
            Console.WriteLine(e.Message + "\n Cannot read from file.");
            return;
         }
         br.Close();
         Console.ReadKey();
      }
   }
}

编译并执行上述代码时,将生成以下输出-

Integer data: 25
Double data: 3.14157
Boolean data: True
String data: I am happy

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

玩转Git三剑客 -〔苏玲〕

从0开发一款iOS App -〔朱德权〕

检索技术核心20讲 -〔陈东〕

互联网人的英语私教课 -〔陈亦峰〕

深度学习推荐系统实战 -〔王喆〕

如何讲好一堂课 -〔薛雨〕

零基础入门Spark -〔吴磊〕

中间件核心技术与实战 -〔丁威〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)