题记
之前有写过认识/理解/运用BufferedStream的文章,今天继续分享有关FileStream的知识。
正文
FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream类操作的是字节和字节数组。
private static void FileStreamRead()
{
try
{
//字节数组 用以接受FileStream对象中的数据
byte [] bs = new byte[5];//此处为了看效果
FileStream fs = new FileStream(@"E:/20120214.txt", FileMode.Open);
while (fs.Read(bs, 0, bs.Length) > 0)
{
//输出
//注: 字节转字符 new UTF8Encoding().GetString(bs)
Console.WriteLine(new UTF8Encoding().GetString(bs));
}
}
catch (IOException e)
{
Console.WriteLine("发生异常");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
}
程序运行截图:
在上面的代码中,在创建FileStream对象的时候,类库提供了多种参数。下面以此解释
1 FileStream fs = new FileStream(@"E:/20120214.txt", FileMode.Open);
说明:使用上面一行代码,文件必须存在,否则会抛出异常。第3个参数不写,可以执行写,读操作
2 FileStream fileStream = new FileStream(@"E:/20120214.txt", FileMode.Open, FileAccess.Read);
说明:使用上面一行代码,文件必须存在,否则会抛出异常。第3个参数表示 读操作
3 FileStream fileStream = new FileStream(@"E:/20120214.txt", FileMode.Open, FileAccess.Write);
说明:使用上面一行代码,文件必须存在,否则会抛出异常。第3个参数表示 写操作
补充:FileMode
查看MSDN文档,可以发现这是个枚举类型,共有6个值。
Append:(常用) 打开现有文件并查找到文件尾,或创建新文件。只能同 FileAccess.Write一起使用
Create: (常用) 指定操作系统应创建新文件。如果文件已存在,它将被改写
CreateNew: 指定操作系统应创建新文件。如果文件已存在,抛出异常
Open:(常用) 指定操作系统应打开现有文件。打开文件的能力取决于FileAccess 所指定的值。如果该文件不存在,抛出异常
OpenOrCreate:(常用)指定操作系统应打开文件(如果文件存在);否则,应创建新文件
Truncate: 指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小
FileAccess 枚举类型,共有3个值。
Read:对文件的读访问, 从文件中读取数据
Write:文件的写访问,将数据写入文件
ReadWrite:
对文件的读访问和写访问,从文件读取数据和将数据写入文件