FileStream类

FileStream(文件流) 这个类主要用于二进制文件中读写,也可以使用它读写任何文件。

StreamReader(流读取器)和StreamWriter(流写入器)专门用于读写文本文件

使用FileStream读写二进制文件:
FileStream实例用于读写文件中的数据,要构造FileStream实例,需要提供下面的4中信息:

  1. 要访问的文件
    一般提供一个文件的完整路径名
  2. 表示如何打开文件的模式
    新建文件或打开一个现有文件,如果打开一个现有的文件,写入操作是覆盖文件原来的内容,还是追加到文件的末尾?
  3. 表示访问文件的方式
    只读、只写、还是读写
  4. 共享访问
    表示是否独占访问文件,如果允许其他流同时访问文件,则这些流是只读 只写 还是读写文件

构造函数的参数:

  • FileMode( 打开模式) Append,Create,CreateNew,Open,OpenOrCreate和Truncate
  • FileAccess(读取还是写入) Read,ReadWrite和Write
  • FileShare(文件共享设置) Delete,Inheritable,None,Read,ReadWrite和Write

PS:
如果文件不存在Append OpenTruncate会抛出异常, 如果文件存在 CreateNew会抛出异常; CreateOpenOrCreateCreate会删除现有的文件,新建一个空的文件,OpenOrCreate会判断当前是否有文件,没有的话才会创建;

注意事项:
当我们使用完了一个流之后,一定要调用fs.Close();方法去关闭流,关闭流会释放与它相关联的资源,允许其他应用程序为同一个文件设置流。这个操作也会刷新缓冲区。


示例代码

using System;
using System.IO;
using System.Text;namespace CSharpDemo
{class Programma{static void Main(string[] args){string path = @"E:\MyTest.txt";if (File.Exists(path)) // 校验文件是否存在{File.Delete(path);}// 创建并写入文件using (FileStream fs_write = File.Create(path)){byte[] info = new UTF8Encoding(true).GetBytes("123");fs_write.Write(info, 0, info.Length);byte[] info1 = new UTF8Encoding(true).GetBytes("456789");fs_write.Write(info1, 0, info1.Length);}// 读取文件using (FileStream fs_read = File.OpenRead(path)){byte[] byteArr = new byte[1024];UTF8Encoding coding = new UTF8Encoding(true);while (fs_read.Read(byteArr, 0, byteArr.Length) > 0){Console.WriteLine(coding.GetString(byteArr));}}Console.ReadKey();}}
}

C# 之 FileStream类介绍相关推荐

  1. C# FileStream类:文件读写

    在 C# 语言中文件读写流使用 FileStream 类来表示,FileStream 类主要用于文件的读写,不仅能读写普通的文本文件,还可以读取图像文件.声音文件等不同格式的文件. 在创建 FileS ...

  2. C#_文件读写常用类介绍

    首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利.     本节先对和文件系统相关的两个.NET类进行简要介绍 ...

  3. C# FileStream简单介绍和使用

    本章讲述:FileStream类的基本功能,以及简单示例; 1.引用命名空间:using System.IO; 2.注意:使用IO操作文件时,要注意流关闭和释放问题! 强力推荐:将创建文件流对象的过程 ...

  4. FileStream类

    FileStream类的官方介绍请见: https://msdn.microsoft.com/zh-cn/library/system.io.filestream.aspx 一.使用FileStrea ...

  5. Hbase API中常用类介绍和使用

    网上Hbase的介绍有很多,案例也不少.自己写了个Demo,进行一些简单的总结. HBase 常用类介绍. JAVA API 和 HBase数据库模型之间的关系 JAVA 类 Hbase 数据模型 H ...

  6. C#中的Dictionary字典类介绍(转载)

    C#中的Dictionary字典类介绍 关键字:C# Dictionary 字典  作者:txw1958 原文:http://www.cnblogs.com/txw1958/archive/2012/ ...

  7. Java中BigDecimal类介绍及用法

    Java中BigDecimal类介绍及用法 Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高 ...

  8. C++/C--istringstream、ostringstream、stringstream 类介绍【转载】

    文章目录 1 C++的输入输出分为三种: 1.1 基于控制台的I/O 1.2 基于文件的I/O 1.3 基于字符串的I/O 2 头文件 3 功能 4 具体分析 4.1 istringstream类 4 ...

  9. Java核心类库-IO-File类介绍和路径分割符

    Java的IO:类和接口存在于Java.io包中 讲IO操作之前,必须要先讲File类(文件/目录) File类介绍和路径分割符: File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径. 该类包 ...

最新文章

  1. 谷歌、阿里们的杀手锏:三大领域,十大深度学习CTR模型演化图谱
  2. 科学通报:合成微生物群落的构建与应用
  3. 计算机软件通常称为,计算机软件通常分为
  4. hdu 5310 Souvenir
  5. c#队列取值_C# 队列
  6. IntelliJ idea学习资源
  7. js添加广告模块,随页面移动而移动
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的学校教务查询系统
  9. linux中python如何调用matlab的数据_如何在Python中创建Gif动图?(动图数据可视化基础教学)
  10. 算法第四版C++算法实现全集
  11. chromedriver与chrome各版本及下载地址
  12. 谷歌浏览器和谷歌搜索_Google的搜索未来
  13. Python手撕周杰伦158首歌之后,结果很尴尬,TF-IDF有缺陷,以为AI是王者
  14. linux 对战平台,【浩方对战平台和搜狗输入法 For Linux哪个好用】浩方对战平台和搜狗输入法 For Linux对比-ZOL下载...
  15. 住院病人主要由护士护理,这不仅需要大量的护士,而且不能随时观察危重病病情,会延误抢救时机以计算机为中心的患者监护系统,写出系统的可行性。并可以系统印出某个指定病人的病情报告。...
  16. 网络常见状态码大全。收藏这一篇就够了(HTTP Status Code)
  17. HG30-3B型多功能校准仪
  18. The request was rejected because the URL contained a potentially malicious String “//“ 报错
  19. BGA焊接开裂失效分析案例
  20. iOS中视频播放的学习

热门文章

  1. 北邮计算机考研分数不高,考研经验-报考北邮,分数不高不低怎么办?
  2. [CTFshow]吃鸡杯
  3. JS面向对象定义多个属性--object.defineProperties()方法
  4. 高通骁龙芯片资料和开发工具下载
  5. 天载股票开户芯片业布局升级 难解汽车缺芯“近渴”
  6. 怎样判断java成员方法,【判断题】在Java中,针对类、成员方法和属性提供了四种访问级别,分别是private、static、protected和public...
  7. 基于EasyDL的小麦检测任务
  8. C语言程序练习,某团购网某自助烤肉店周年庆。正常自助58元一位。周年庆团购,团购人数越多打折越多
  9. 厦门 服务器管理系统,厦门erp电商管理系统排行榜
  10. 使用VMware在输入模式下遇到的问题