System.IO 命名空间

文件类

静态类,对文件夹,文件进行操作。因为不需要实例化,适合对某个文件文件夹进行少量操作

和上面的用法差不多,这个要实例化。把文件,或者文件夹实例化成对象,方便多次操作。

静态类,对路径进行操作

获取点磁盘信息

Stream基类

Stream

C#中,所有流都是继承自Stream类,Stream类定义了流应该具有的行为和属性,使得开发人员可以忽略底层的操作系统和基础设备的具体细节。C#对流的处理忽略了读流和写流的区别,使其更像是一个管道,方便数据通信。流涉及到三个基本操作:

  • 读取 - 将数据从流中传输到数据结构中
  • 写入 - 将数据从数据源写入流中
  • 查找 - 对流中操作的当前位置进行查找和修改

因为流的特性,可能并不是所有的流都支持这三种操作,所以Stream提供了三个属性,以方便确认流是否支持这三种操作:

  1. public abstract bool CanRead { get; } // 获取指示当前流是否支持读取的值
  2. public abstract bool CanWrite { get; } // 获取指示当前流是否支持写入功能的值
  3. public abstract bool CanSeek { get; } // 获取指示当前流是否支持查找功能的值

常用流介绍

字符流

类名的结尾是Reader和Writer的,一般直接用来操作字符文件

  • StreamReader StreamWriter:用特殊编码读取字节流的字符和把字符写入字节流
  • StringReader StringWriter :从字符串读取写入,信息存储在基础 StringBuilder 中。
  • BinaryReader BinaryWriter :二进制读写

    字节流

    都是派生至Stream基类,类名的结尾是Stream的

  • FileStream:用来操作文件的流

  • MemoryStream :MemoryStream类主要用于操作内存中的数据。比如说网络中传输数据时可以用流的形式,当我们收到这些流数据时就可以声明MemoryStream类来存储并且处理它们。
  • BufferedStream:缓存流,增强其他流的性能
  • NetworkStream :为网络访问提供数据的基础流,NetWorkStream类是专门用来处理服务器与客户端通信的流。它在网络编程中经常使用,主要是用来处理类似Socket、TcpClient和TcpListener这些类中得到的流

    更多流看文档Stream的派生

FileStream基础操作

  1. static void Main(string[] args)
  2. {
  3. FileStream stream = new FileStream(@"E:\1测试加密\数学1上.avi", FileMode.Open);
  4. FileStream stream1 = new FileStream(@"E:\1测试加密\写出的数学.avi", FileMode.Create);
  5. byte[] b = new byte[1024];//设置缓冲区
  6. while (stream.Read(b, 0, b.Length) != 0)//读取字节到缓冲数组,一次读取1024字节,返回读取到的字节数量。
  7. {
  8. stream1.Write(b, 0, b.Length);//写入另一个文件
  9. }
  10. }

StreamReader和StreamWriter基础操作

  1. static void Main(string[] args)
  2. {
  3. using (FileStream stream = new FileStream(@"E:\1测试加密\斗po苍穹.txt", FileMode.Open))
  4. {
  5. using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
  6. {
  7. string str = sr.ReadToEnd();
  8. Console.WriteLine(str);
  9. using (FileStream fs = new FileStream(@"E:\1测试加密\字符流写出的斗破.txt", FileMode.Create))
  10. {
  11. using (StreamWriter sw = new StreamWriter(fs))
  12. {
  13. sw.Write(str);
  14. }
  15. }
  16. }
  17. }
  18. }