博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识IO流——二进制文件的读和写操作
阅读量:6148 次
发布时间:2019-06-21

本文共 1760 字,大约阅读时间需要 5 分钟。

  C#中,二进制文件的写和读操作分别由BinaryWrite类和BinaryReader类实现,它们都所属与System.IO命名空间。

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

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

  根据BinaryWriter类和BinaryReader类的实现写和读过程,其实可以将二者理解为一个"互逆"的过程。

 

  示例:分别用BinaryWrite类和BinaryReader类实现二进制文件的写操作和读操作。

 

  (1)BinaryWrite类实现写入操作:

1 public void DoWrite(string str) 2         { 3             /*文件在项目中的相对于根目录的位置*/ 4             string Relative_path = "/Binary/first_" + DateTime.Today.ToString("yy-MM-dd") + ".dat"; 5  6             /*获取项目的根目录*/ 7             string Full_path = AppDomain.CurrentDomain.BaseDirectory + Relative_path; 8  9             FileStream filestream = new FileStream(Full_path, FileMode.Append, FileAccess.Write);10 11             using (BinaryWriter writer = new BinaryWriter(filestream))12             {13 14                 writer.Write(str);15 16             }17 18         }

 

  (2)BinaryReader类实现文件的读取操作:

1 public string DoRead() 2         { 3             /*文件在项目中的相对于根目录的位置*/ 4             string Relative_path = "/Binary/first_" + DateTime.Today.ToString("yy-MM-dd") + ".dat"; 5  6             /*获取项目的根目录*/ 7             string Full_path = AppDomain.CurrentDomain.BaseDirectory + Relative_path; 8  9             /*存储结果*/10             string Read_text = string.Empty;11 12             FileStream filestream = new FileStream(Full_path, FileMode.Open, FileAccess.Read);13 14             using (BinaryReader reader = new BinaryReader(filestream))15             {16 17                 /*判断是否读到结尾处*/18                 while (reader.PeekChar() != -1)19                 {20 21                     Read_text += reader.ReadString();22 23                 }24 25                 return Read_text;26             }27 28         }

 

   

转载于:https://www.cnblogs.com/SunshineAgain/p/5703480.html

你可能感兴趣的文章
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>
oracle 去掉空格
查看>>
6.13心得
查看>>
Runtime类
查看>>
eclipse decompiler
查看>>
记一个搜索网盘资源的网站
查看>>
jdk1.7和jdk1.8的String的getByte方法的差异
查看>>
java父子进程通信
查看>>
Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
查看>>
Olap学习笔记
查看>>
Codeforces Round #431 (Div. 1)
查看>>
如何进行数组去重
查看>>
将标题空格替换为 '_' , 并自动复制到剪切板上
查看>>
List Collections sort
查看>>
Mysql -- You can't specify target table 'address' for update in FROM clause
查看>>
使用局部标准差实现图像的局部对比度增强算法。
查看>>
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>