读写文本文件
使用C#读写文本文件需要5个步骤:
1.创建文件流
2.创建阅读器或者写入器
3.执行读写操作
4.关闭阅读器或者写入器
5.关闭文件流
例
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; //引入命名空间 7 8 namespace Demo 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 //创建文件流 15 FileStream stream = new FileStream("filePath", FileMode.Create); 16 //创建写入器 17 StreamWriter writer = new StreamWriter(stream); 18 //写入内容 19 writer.Write("写入"); 20 //关闭写入器 21 writer.Close(); 22 //关闭文件流 23 stream.Close(); 24 } 25 } 26 }
其中FileStream中的FileMode指的是打开文件的模式,可以根据字面意思来理解,Create就是创建一个文件。
读取文件只是将StreamWriter换成StreamReader。其他的都可以按照文字变成英语来替换。
创建StreamWriter一般有两个参数,一个是FileStream对象,一个是Encoding字符编码,常用的是Default。解决乱码问题。
文件操作
File类:(静态)
Exists(string path)用于检查指定文件是否存在,有返回值,bool类型。
Copy(string sourceFilePath,string destinationFilePath)将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件。
Move(string sourceFilePath,string destinationFilePath)将指定文件移到一个新的路径。
Delete(string path)删除指定的文件,如果指定的文件不存在,则不引发异常。
FileInfo类:(实例)
属性:
Exists:用于检查指定文件是否存在,返回一个布尔值。
Extension:获取表示文件扩展名部分的字符串。
Name:获取文件名。
FullName:获取目录或文件的完整目录。
方法:
CopyTo(string)将现有文件复制到新文件,不允许覆盖现有文件。
Delete()永久删除文件。
MoveTo(string)将指定文件移到新位置(string)。
文件夹操作
Directory类:(静态)
Exists(string path)用于检查指定文件夹在磁盘上是否存在。
Move(string sourceDirName,string destDirName)用于将文件或目录及其内容移到新位置。
Delete(string path,bool recursive)删除指定目录,如果recursive值为true,则删除子目录中的所有的目录内容。
DirectoryInfo类:(实例)
方法与Directory类的方法一致。
GetDirectories():返回当前目录的子目录对象数组,Directory类也有这个方法,但返回值是当前目录的子目录的名称数组。
GetFiles():该方法返回当前目录下的文件列表(FileInfo对象数组)。Directory类也有这个方法,但返回值是指定目录下的文件名数组。
使用静态方法和实例方法操作文件的区别
使用静态方法时每次都会进行安全检查,如果想要多次使用某个文件对象,可以使用实例方法,不必每次都进行安全检查。