引用命名空间
using System.IO;
一、读取文件
FileStream 类只能处理原始字节(raw byte)。FileStream 类可以用于任何数据文件,而不仅仅是文本文件。FileStream 对象可以用于读取诸如图像和声音的文件,FileStream读取出来的是字节数组,然后通过编码转换将字节数组转换成字符串。
第一步:声明一个FileStream类的对象
FileStream fsRead = new FileStream(string path, FileMode mode, FileAccess access);
参数:
path:要操作的文件路径,路径可以是绝对路径或者相对路径。
mode:操作文件的方式,打开或者创建
access:操作文件中的数据,读取或者写入
第二步:调用fsRead对象的方法Read
FileStream.Read(byte[] array, int offset, int count)方法是从文件中读取数据,再把数据写入一个字节数组
参数:
array:用来存储fsRead对象读取到数据的字节数组
offse:开始读取数据的位置,通常都是0
count:最多读取的字节数
示例:(下面的代码在C#控制台中可运行)
<strong> </strong>//声明一个FileStream类的对象
FileStream fsRead = new FileStream(@"C:\Users\GuGuoYu\Desktop\新建文本文档.txt", FileMode.OpenOrCreate, FileAccess.Read);
byte[] buffer = new byte[200];//声明一个字节数组,用来临时存储读取到数据,最大存储200字节
while (true)
{
int r = fsRead.Read(buffer, 0, buffer.Length);//返回本次实际读取到的字节数
if (r == 0)//如果读取到的字节数为0,说明已到达文件结尾,则退出while循环
{
break;
}
string s = Encoding.UTF8.GetString(buffer, 0, r);//将字节数组转换成字符串;buffer:要转换的字节数组;0:第一个要解码的字节的索引;r:要解码的字节数
Console.WriteLine(s);
}
fsRead.Close(); //关闭流
fsRead.Dispose(); //释放流
Console.ReadKey();
二、写入文件
第一步:声明一个FileStream类的对象
FileStream fsWrite = new FileStream(string path, FileMode mode, FileAccess access);
参数:
path:要操作的文件路径,路径可以是绝对路径或者相对路径。
mode:操作文件的方式,打开或者创建
access:操作文件中的数据,读取或者写入
第二步:调用fsWrite对象的方法Write
FileStream.Write(byte[] array, int offset, int count)方法是将字节数组数据写入到指定的文本
参数:
array:用来存储字符串转换成字节的字节数组
offse:开始存储的位置,通常都是0
count:最多写入的字节数
using (FileStream fsWrite = new FileStream("顾国玉的FileStream.txt", FileMode.Append, FileAccess.Write))
{
Console.WriteLine("请输入文本");//提示用户输入字符串
string str = Console.ReadLine();//接受用户输入的字符串
byte[] array = Encoding.UTF8.GetBytes(str);//将字符串转换成字节数组
fsWrite.Write(array, 0, array.Length);//将字节数组写入到文本文件
Console.WriteLine("写入成功");
Console.ReadKey();
}