File类:提供用于操作文件的静态方法。
FileInfo类:提供操作文件的属性和实例方法。
Directory类:提供用于操作目录的静态方法。
DirectoryInfo类:提供用于操作目录的实例方法,此类不能被继承。
简单来说,有Info这个词的类不是静态的,必须要实例化后才可以使用;而没有这个词的都是静态类,可以直接使用。当需要进行很多次对目录或文件的操作时,最好别使用静态类,因为每次都要查找文件,所以会比较耗费时间。
以File类为例来简单列出一些常用方法吧,其它类实现方法差不多:
1.判断文件是否存在:File.Exists();
2.创建文件:File.Create();
3.删除文件:File.Delete();
4.复制文件:File.Copy();
5.读写文件:File.ReadAllLines();
、File.WriteAllLines();
1、FileStream类:
主要用于对磁盘上文件的读写
读取数据:
FileStream fs = new FileStream(@"demo.txt",FileMode.Open);//初始化文件流
byte[] array = new byte[fs.Length];//初始化字节数组
fs.Read(array, 0, array.Length);//读取流中数据到字节数组中
fs.Close();//关闭流
string str = Encoding.Default.GetString(array);//将字节数组转化为字符串
Console.WriteLine(str);
- 1
- 2
- 3
- 4
- 5
- 6
写入数据:
FileStream fs = new FileStream(@"demo.txt",FileMode.Append);//初始化文件流
byte[] array = Encoding.UTF8.GetBytes("Hello World!你好");//给字节数组赋值
fs.Write(array, 0, array.Length);//将字节数组写入文件流
fs.Close();//关闭流
- 1
- 2
- 3
- 4
2、MemoryStream类:
主要用于操作内存中的数据。
3、StreamReader/StreamWriter类:
主要用来处理流数据,提供了高效的流读写功能。可以直接用字符串进行读写,而不用转换成字节数组。
读取数据:
FileStream fs = new FileStream(@"demo.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string line = sr.ReadLine();//直接读取一行
sr.Close();
fs.Close();
Console.WriteLine(line);
- 1
- 2
- 3
- 4
- 5
- 6
写入数据:
FileStream fs = new FileStream(@"demo.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("hello world");
sw.Close();
fs.Close();//这里要注意fs一定要在sw后面关闭,否则会抛异常
- 1
- 2
- 3
- 4
- 5
4、TextReader/TextWriter类:
主要用来处理流数据,提供了高效的文本流读写功能。
引用:lr_旅人的博客