一、File 类
这是一个静态类,提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象
没有构造函数和属性
写入数据
1.WriteAllText(String, String) 创建一个新文件,向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
文件的数据会全部覆盖
创建一个新文件,使用指定编码向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
打开一个文件,向其中追加指定的字符串,然后关闭该文件。 如果文件不存在,此方法将创建一个文件,将指定的字符串写入文件,然后关闭该文件。
紧接着数据后加字符串,不会换行。
读取数据
1.
2.
复制
1.Copy(String, String) 将现有文件复制到新文件。 不允许覆盖同名的文件。
第一个参数是原文件,第二个参数是新生成的文件。路径必须是真实有效的,不会自动创建不存在的路径
如果参数二的路径下已存在同名文件,则它会提示该路径下已有文件不允许重新创建
2.Copy(String, String, Boolean) 将现有文件复制到新文件。 允许覆盖同名的文件。
第三个参数true时可以覆盖新文件,否则为flase
3.Create(String) 在指定路径中创建或覆盖文件。
在该路径下创建一个空文件,以前的文件覆盖后变空
删除
Delete(String) 删除指定的文件。
移动
Move(String, String) 将指定文件移到新位置,提供要指定新文件名的选项。
把参数一移动到参数二并重命名, 不能覆盖目标文件
判断文件存在
Exists(String) 确定指定的文件是否存在。返回一个布尔值
文件日期更改
SetCreationTime(String, DateTime) 设置创建该文件的日期和时间。
SetLastAccessTime(String, DateTime) 设置上次访问指定文件的日期和时间。
SetLastWriteTime(String, DateTime) 设置上次写入指定文件的日期和时间。(修改时间)
判断使用静态的File类还是FileInfo类:
1、如果应用程序在文件上执行几种操作,则使用FileInfo类更好一些,因为创建对象时,已经引用了正确的文件,而静态类每次都要寻找文件,会花费更多时间。
2、如果进行单一的方法调用,则建议用File类,不必实例化对象。
二、FileStream 类
1.流
流的概念:流是一个用于传输数据的对象。
如果数据从外部源传输到程序中,就是读取流。如果数据从程序传输到外部源中,就是写入流。
外部源有可能是网络上的数据,或内存区域等。System.Net.Sockets.NetworkStream对象处理网络数据,System.IO.MemoryStream对象用来读取内存。
使用独立的流对象传输数据比使用FileInfo类等更好,把传输数据的概念与特定数据源分离开,可以更容易交换数据源,更容易实现不同环境下代码的重用
读写文件最常用的类
FileStream(文件流):主要用于在二进制文件中读写二进制数据,也可以用它读写任何数据。
StreamReader(流读取器)和StreamWriter(流写入器)-这两类专门用于读写文本文件。
BinaryReader和BinarReader这两类本身并不实现流,但能够提供其他流对象的包装器。
2.缓存的流
3.FileStream类
为文件提供 Stream,既支持同步读写操作,也支持异步读写操作。
构造方法
FileStream(String, FileMode) 使用指定的路径和创建模式初始化 FileStream 类的新实例
FileStream(String, FileMode, FileAccess) 使用指定的路径、创建模式和读/写权限初始化 FileStream 类的新实例
FileMode枚举类
FileMode枚举是一个简单枚举,用于指定操作系统打开文件的方式。
枚举成员
CreateNew 指定操作系统应创建新文件,如果文件存在则引发异常。
Create 指定操作系统创建新文件,如果文件已存在则覆盖之。
Open 指定 操作系统应打开现有文件,如果文件不存在则抛出异常。
OpenOrCreate 指定操作系统应打开文件,如果文件不存在则创建之。
Truncate 指定操作系统打开现有文件,如果文件已存在则清空,从Truncate打开的文件中读取将引发异常。
Append 若文件存在,则找到文件并找到文件结尾,或者创建一个新文件。
FileAccess 枚举
FileAccess用于控制对文件的读访问、写访问或读/写访问的常熟
枚举成员
Read 对文件的读访问,拥有读取权限。
Write 对文件的写访问,拥有写入权限。
ReadWrite 对文件的读访问和写访问,拥有读取和写入权限。
属性
Length 获取用字节表示的流长度
方法
Read(Byte[], Int32, Int32) 从流中读取字节块并将该数据写入给定缓冲区中。
日志
映射内存的文件
.NET Framework4.5
读取驱动器信息
使用 DriveInfo读取磁盘信息
代码
运行
文件转内存流