C# 文件读取(一)
1. 读写文件的步骤:
创建一个文件流 -- 创建相应的读写器 -- 执行读写操作 -- 关闭读写器 -- 关闭文件流
创建一个文件流: FileStream objfs = new FileStream(文件的路径 , 文件打开模式);
文件的打开模式: FileMode 是一个枚举值,此处略去
创建文件的同事也可以设置权限
创建读写器: StreamReader objsr = new StreamReader(objfs, Encoding.UTF8);
StreamWriter objsw = new StreamWriter(objfs, Encoding.UTF8);
Enoding 是为了解决乱码问题
读写操作: 读: objsr.ReadToEnd();
写:objsw.Write(content);
关闭读写器: objsr.Close();
objsw.Close();
关闭文件流: objfs.Close();
2. File类
提供操作文件的各种方法。
方法 |
说明 |
bool Exists(string path) |
用于检查指定文件是否存在,该方法返回一个布尔值 |
void Copy(string sourceFileName, |
将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件 |
void Move (string
sourceFileName, |
将指定文件移动到一个新的路径 |
void Delete(string path) |
删除指定的文件,如果指定的文件不存在,则不引发异常 |
3. Directory 类提供对文件夹的移动、删除等操作
方法 |
说明 |
bool Exists(string path) |
用于检查指定文件夹在磁盘上是否存在 |
void Move(string sourceDirName, string destDirName) |
用于将文件或目录及其内容移到新位置 |
void Delete(string path, bool recursive) |
删除指定目录,如果bool指定true,则删除子目录中的所有目录内容 |
void Delete(string path) |
从指定路径删除空目录 |
3. FileInfo类
由于File类的静态方法在使用时都会进行安全检查,所以如果想要多次使用某个文件对象,可以考虑使用FileInfo类相应的实例方法,因为并不总是需要安全检查
属性/方法 |
说明 |
Exists |
用于检查指定文件是否存在,返回一个布尔值 |
Extension |
获取表示文件扩展名部分的字符串 |
Name |
获取文件名 |
FullName |
获取目录或文件的完整目录 |
FileInfo CopyTo(string) |
将现有文件复制到新文件,不允许覆盖现有文件 |
void Delete() |
永久删除文件 |
void MoveTo(string) |
将指定文件移到新位置 |
4. DirectoryInfo类
如果打算多次重用某个目录对象,可以考虑使用DirectoryInfo类的实例方法
方法 |
说明 |
DirectoryInfo[ ] GetDirectories() |
返回当前目录的子目录对象数组 |
FileInfo[ ] GetFiles() |
返回当前目录下文件列表(FileInfo对象数组) |
备注:文件(file)与流(stream)
文件,是在各种媒介上永久存储的数据的有序集合,它是一种进行数据读写操作的基本对象。
流,从概念上讲,非常类似于单独的磁盘文件,它也是进行数据读取操作的基本对象,流为我们提供了连续的字节流存储空间。
File类,是一个静态类,主要是来提供一些函数库用的。
静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件。