C#的二进制文件操作

1 .数值应保存在二进制文件

首先列举文本、二进制文件的操作(读写)方法:

方式 1

// 文本文件操作:创建 / 读取 / 拷贝 / 删除
using System;
using System.IO;
class Test
{
   string path = @"f:/t.txt" ;
   public static void Main()
   {       
      //
创建并写入 ( 将覆盖已有文件 )

      if (!File.Exists(path))
      {

//StreamWriter m=new           

//StreamWriter(path,true,Encoding.Default,1);//ASCII,1   Encoding.Default :即//UTF-8 编码  这样就可以指定编码方式

    using (StreamWriter sw = File.CreateText(path))
         {
            sw.WriteLine("Hello");
         }
      }
      //
读取文件

      using (StreamReader sr = File.OpenText(path))
      {
        string s = "";
        while ((s = sr.ReadLine()) != null )
        {
           Console.WriteLine(s);
        }
     }
     //
删除 / 拷贝

     try
     {
        File.Delete(path);
        File.Copy(path, @"f:/tt.txt");
     }
     catch (Exception e)
     {
        Console.WriteLine("The process failed: {0}", e.ToString());
     }
   }
}

方式 2

//
流文件(二进制)操作
private const string name = "Test.data";
public static void Main(String[] args)
{
    //
打开文件 ()  , 或通过 File 创建立如: fs = File.Create(path, 1024)

    FileStream fs = new FileStream(name, FileMode.CreateNew);
    //
转换为字节 写入数据 ( 可写入中文 )

    Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
    //
字节数组 , 字节偏移量 , 最多写入的字节数

BinaryWriter   w   =   new    BinaryWriter(fs);

// 设置要写入的偏移量 

fs.Position=fs.Length;
  //  fs.Write(info, 0, info.Length);   这个也可以
    w.Close();
    fs.Close();
    //
打开文件

    fs = new FileStream(name, FileMode.Open, FileAccess.Read);
    //
读取

    BinaryReader r = new BinaryReader(fs);
    for (int i = 0; i < 11; i++)
    {
        Console.WriteLine(r.ReadInt32());
    }
    w.Close();
    fs.Close();

在将一系列二进制数如方式 1 写入到 file.txt( 二进制 ) 文件后,打开 file.txt 后显示的数据二进制数有些错误,有些正确。(与存入的不一样) 向文件中写入的 默认(也可以设置) 都是使用 UTF-8 编码 。打开 file.txt 是也是默认 UTF-8 编码。

 

若将其如方式 2 存入 二进制文件,则显示的数据一致。若将二进制数(整数)保存为文本文件出错。二进制文件是直接写入文件的(磁盘)没有经过编码和读取时的解码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值