【原创】C#认识/理解/运用 FileStream

题记

之前有写过认识/理解/运用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 对文件的读访问和写访问,从文件读取数据和将数据写入文件

原文地址:https://www.cnblogs.com/zhxhdean/p/2355420.html