原文地址:对文件流进行操作作者:蒙面侠客

对流进行操作时要引用 using System.Text; 命名空间

FileStream常用的属性和方法:

属性:

CanRead         判断当前流是否支持读取,返回bool值,True表示可以读取

CanWrite         判断当前流是否支持写入,返回bool值,True表示可以写入

方法:

Read()            从流中读取数据,返回字节数组

Write()            将字节块(字节数组)写入该流

Seek()            设置文件读取或写入的起始位置

Flush()            清除该流缓冲区,使得所有缓冲的数据都被写入到文件中

Close()           关闭当前流并释放与之相关联的所有系统资源

文件的访问方式:(FileAccess)

包括三个枚举:

FileAccess.Read(对文件读访问)

FileAccess.Write(对文件进行写操作)

FileAccess.ReadWrite(对文件读或写操作)

文件打开模式:(FileMode)包括6个枚举

FileMode.Append                  打开现有文件准备向文件追加数据,只能同FileAccess.Write一起使用

FileMode.Create                   指示操作系统应创建新文件,如果文件已经存在,它将被覆盖

FileMode.CreateNew            指示操作系统应创建新文件,如果文件已经存在,将引发异常

FileMode.Open                    指示操作系统应打开现有文件,打开的能力取决于FileAccess所指定的值

FileMode.OpenOrCreate     指示操作系统应打开文件,如果文件不存在则创建新文件

FileMode.Truncate              指示操作系统应打开现有文件,并且清空文件内容

文件共享方式:(FileShare)

FileShare方式是为了避免几个程序同时访问同一个文件会造成异常的情况。

文件共享方式包括四个:

FileShare.None                 谢绝共享当前文件

FileShare.Read                 充许别的程序读取当前文件

FileShare.Write                 充许别的程序写当前文件

FileShare.ReadWrite         充许别的程序读写当前文件

使用FileStream类创建文件流对象:

FileStream(String    文件路径,FileMode    文件打开模式)

FileStream(String    文件路径,FileMode     文件打开模式,FileAccess    文件访问方式)

FileStream(String    文件路径,FileMode    文件打开模式,FileAccess    文件访问方式,FileShare    文件共享方式)

例:

//在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs的工作模式是新建(FileMode.Create)

FileStream fs=new FileStream(@"c:a.txt",FileMode.Create);

//在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(FileMode.Create)文件的访问模式是写入(Fileaccess.Write)

FileStream fs=new FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write);

//在C盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(FileMode.Create)文件的访问模式是写入(FileAccess.Write)文件的共享模式是谢绝共享(FileShare.None)

FileStream fs=new FileStream(@"c:a.txt",FileMode.Create,FileAccess.Write,FileShare.None);

使用File类来创建对象:(常用)

自定义打开文件的方式:File.Open(String,FileMode);

打开文件进行读取:       File.OpenRead(String);

打开文件进行写入:     File.OpenWrite(String);

示例如下:

//在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以行文件内容追加操作FileMode.Append

FileStream fs=File.Open(@"c:123.txt",FileMode.Append);

//在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行读文件File.OpenRead()

FileStream fs=File.OpenRead(@"c:123.txt");

//在C盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行写操作File.OpenWrite()

FileStream fs=File.OpenWrite(@"c:123.txt");

使用File例:

对文件进行读操作:

//新建fs流对象对象产生的路径是textbox1.text的值,文件的模式是FileMode.OpenOrCreate(可读可写)

using (FileStream fs = File.Open(textBox1.Text, FileMode.OpenOrCreate))
            {

//新建字节型数组,数组的长度是fs文件对象的长度(后面用于存放文件)
               byte[] bt=new byte[fs.Length];

//通过fs对象的Read方法bt得到了fs对象流中的内容
               fs.Read(bt,0,bt.Length);

//关闭fs流对象
               fs.Close();

//将bt字节型数组中的数据由Encoding.Default.GetString(bt)方法取出,交给textbox2.text
               textBox2.Text = System.Text.Encoding.Default.GetString(bt);
            }

对文件进行写入操作:

//新建fs流对象,对象操作的文件路径在textbox1.text中,fs的操作模式是FileMode.Create

using (FileStream fs = File.Open(textBox1.Text, FileMode.Create))
            {

//新建字节型数组bt对象,bt对象得到了textbox2.text的Encoding的值
               byte[] bt = System.Text.Encoding.Default.GetBytes(textBox2.Text);

//将bt字节型数组对象的值写入到fs流对象中(文件)
              fs.Write(bt,0,bt.Length);

//关闭流对象
               fs.Close();
            }

注:

对文件的读写操多不管代码有多少,无非就是下面的三步:

1.创建文件读写流对象

2.对文件进行读写

3.关闭文件流

[转载]对文件流进行操作相关推荐

  1. java中有关文件流的操作

    文件流: 顾名思义,程序和文件打交道. 此时我们谈及的文件,值得是纯文本文件(txt的,不要使用Word,Excel), 在字节流中,暂时不要使用中文. FileInputStream: 文件的字节输 ...

  2. java中pdf写成base64文件流,Java操作pdf文件与Base64编码相互转换与文件流操作

    1.第一步,引入bc包的安装依赖. 在pom.xml中引入. org.bouncycastle bcprov-jdk15on 1.60 引入后reimport一下项目. 2.pdf文件转换成Base6 ...

  3. 浅谈C/C++文件流的操作

    转自:微点阅读  https://www.weidianyuedu.com/content/3417507553653.html C/C++文件流 文件流是以外存文件为输入/输出对象的数据流.输出文件 ...

  4. java 写文件 高效_java高效文件流读写操作详解|chu

    导语 防止自己以后忘记,记录一些文件流的性能对比. 平常经常会操作到文件读写,java当中提供了许多操作文件的类,一般来说,文件操作也叫流操作,可以按照以下方式分类:按照功能分类,字节流和字符流. 按 ...

  5. java接收文件流并操作文件流

    1.controller层 @PostMapping("/upload")public Resp upload(@RequestParam MultipartFile multip ...

  6. C# 文件流相关操作

    二进制转换成图片: MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStream(m ...

  7. java文件流的操作

    2019独角兽企业重金招聘Python工程师标准>>> //读取二进制文件 public static void ReadBinaryFile()  {   System.out.p ...

  8. C++ 流的操作 | 初识IO类、文件流、string流的使用

    文章目录 前言 IO头文件 iostream fstream sstream 流的使用 不能拷贝或对 IO对象 赋值 条件状态与 iostate 类型 输出缓冲区 文件流 fstream类型 文件模式 ...

  9. 【Delphi入门】文件系统(文件分类 文件文本变量 文件操作 文件流操作)

    文件分类 文本文件(TextFile) & 二进制文件(Flie) 二进制形式存放数据占有存储空间较少,但不直观:文本文件与之相反 文件是由相同类型的数据元素组成的序列.在DELPHI中对文件 ...

最新文章

  1. IE6与其他浏览器的区别
  2. 电气论文实现: 考虑储能和可再生能源误差的售电公司购售电策略( 有代码数据)
  3. 数据分析与挖掘-python常用数据探索函数
  4. Android中异步任务AsyncTask的使用
  5. 全国英语计算机9月统考2019,2019年9月网络教育统考《计算机应用基础》模拟题6...
  6. 架构解读丨Volcano作业资源预留设计原理
  7. Given two binary trees, write a function to check if they areequal or not.
  8. SQLMAP 脱库过程(get请求)
  9. 金蝶K3修改核算项目锁定字段的默认长度(以物料主数据的助记码为例)
  10. OpenCV玩九宫格数独(一)——九宫格图片中提取数字
  11. 目标跟踪VOT2016的配置
  12. Taq DNA聚合酶的种类与应用现状
  13. 工业路由器的端口映射方法 NAT/DMZ/UPNP
  14. 如何将彩色文本打印到终端?
  15. 改进的节点分析法(Modified Nodal Analysis)
  16. VTK笔记-CT图像获取皮肤等值面-vtkContourFilter类的使用
  17. 小程序页面卡顿解决问题
  18. 数字基带调制解调matlab仿真,数字通信系统课程设计--基于MATLAB数字基带调制.doc...
  19. 【项目自动发布】基于Docker/单节点Rancher/GitLab搭建简易的CI/CD流水线(备忘+补充完善)
  20. 蚂蚁《c++.模拟》

热门文章

  1. 《从0到1》笔记 第十章 打造帮派文化
  2. 关于draw.io怎么改中文字体
  3. ESP32-C3入门教程 问题篇④——SHA-256 comparison failed, Attempting to boot anyway... entry 0x403ce000 无限重启
  4. mysql 临时表 会话级_会话级临时表
  5. AMFPHP在64位机上无法正确转换负数
  6. HTML学习12 js-DOM
  7. 游戏服务器AOI兴趣点算法原理--四叉树与九宫格 (golang)
  8. 网络管理员不惜代价都要避免的10个坏习惯
  9. ARM汇编循环——100以内等差数列求和
  10. NFC开发 —————ID卡、IC卡(M1卡、CPU卡)的区别(三)