文件读写
一、概述
**1、流:**流相当于一个管道,C#通过流来读写文件,流分为:
- 输入流:相对于程序而言,数据从文件写入到程序的过程,即读文件
- 输出流:相对于程序而言,数据从程序输出到文件中的过程,即写文件
2、FileStream对象
FileStream对象表示在磁盘或网络路径上指向文件的流(即用于指向要操作的文件)
在FileStream的基础上,使用StreamReader或StreamWriter实现文件的读写(字节方式)
FileStream 对象 = new FileStream(string path,FileMode mode,
[FileAccess access,FileShare share]);
参数说明:
- path:路径
- FileModel:打开文件的方式
- CreateNew:创建新文件,如果文件存在会抛出异常
- Create:创建新文件,如果文件存在会覆盖
- Open:打开现有文件,流指向文件开头,如果文件不存在会抛出异常
- OpenOrCreate:打开文件,流指向文件开头,如果文件不存在则创建新文件
- Truncate:打开现有文件并清除文件内容,流指向文件开头,如果文件不存在则抛出异常
- Append:打开文件,流指向末尾,只能与FileAccess.Write联合使用(追加内容)
- FileAccess:访问文件的方式
- FileShare:文件共享方式
二、文件的读取:StreamReader
1、语法
StreamReader 对象 = new StreamReader(Stream stream,[Encoding.字符编码]);
StreamReader 对象 = new StreamReader(filename,[Encoding.字符编码]);
2、方法
- ReadLine():一行一行地读取文件,读到文件的末尾时,返回null
- ReadToEnd():从文件的开始到末尾,一次性读取
- Close():关闭流
//一、指定要操作的文件
FileStream fs = new FileStream(@"test.txt", FileMode.Open, FileAccess.Read);
//二、创建StreamReader对象,便于数据的输出操作
StreamReader sr = new StreamReader(fs);
//二、实现数据的读取
rtxtContent.Text = sr.ReadToEnd();
//四、关闭流
sr.Close();
fs.Close();
三、文件的写入:StreamWriter
1、语法
StreamWrite 对象 = new StreamWriter(Stream stream);
StreamWrite 对象 = new StreamWriter(Stream stream,Encoding encoding);
StreamWrite 对象 = new StreamWriter(string filename,bool append,Encoding encoding);
参数说明:
- stream:要写入文件的流
- append:是否追加
- encoding:字符编码
- filename:路径+文件名
2、方法
- Write():写入数据
- WriteLine():写入数据并换行
- Flush():清空缓冲区
- Close():关闭流
eg:
//一、指定要操作的文件
FileStream fs = new FileStream(@"test.txt", FileMode.Append,FileAccess.Write);
//二、创建StreamWrite对象,便于数据的输出操作
StreamWriter sw = new StreamWriter(fs);
//二、实现数据的写入
string str = rtxtContent.Text;
sw.Write(str);
//四、关闭流
sw.Flush();
sw.Close();
fs.Close();
MessageBox.Show("success");