文件流
- 使用IO操作文件时,要注意流关闭和释放问题!
FileAccess,访问权限(只读,只写,可读可写)
1)FileAccess.Read:
用法:获得对文件的读取访问权限,进而可以从文件中读取数据(只读)。2)FileAccess.Write:
用法:获得对文件的写入访问权限,进而可以将数据写入该文件(只写)。3)FileAccess.ReadWrite:
用法:获得读取,写入文件的访问权限, 进而可以从文件中读取,写入数据(可读可写)。
//使用FileStream来读取数据
FileStream fsRead = new FileStream(@"C:\Users\SpringRain\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Read);
byte[] buffer = new byte[1024 * 1024 * 5];
//3.8M 5M
//返回本次实际读取到的有效字节数
int r = fsRead.Read(buffer, 0, buffer.Length);
//将字节数组中每一个元素按照指定的编码格式解码成字符串
string s = Encoding.UTF8.GetString(buffer, 0, r);
//关闭流
fsRead.Close();
//释放流所占用的资源
fsRead.Dispose();
Console.WriteLine(s);
**强力推荐:**将创建文件流对象的过程写在using当中,会自动帮助我们释放资源;
// 使用FileStream来写入数据
using (FileStream fsWrite = new FileStream(@"C:\Users\SpringRain\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
string str = "看我游牧又把你覆盖掉";
byte[] buffer = Encoding.UTF8.GetBytes(str);
fsWrite.Write(buffer, 0, buffer.Length);
}
Console.WriteLine("写入OK");
Console.ReadKey();