1、Path:
路径是提供文件或目录位置的字符串。Path类的大多数成员不与文件系统进行交互,且不验证路径字符串所指定的文件是否存在。所以我们操作文件的时候,可以通过Path类来操作文件的路径和扩展名,然后使用File类来执行具体的文件操作。
path类的几个方法: 获得文件或文件夹所在的目录 String str = Path.GetDirectoryName(@"C:\Users\zhangkang\Desktop\1.txt");
改变文件的扩展名 Path.ChangeExtension(@"C:\Users\zhangkang\Desktop\1.txt", "jpg"); 获得文件的扩展名
string result = Path.GetExtension(@"C:\Users\zhangkang\Desktop\繁体字.txt");
连接路径 string path = Path.Combine(@"C:\Users\zhangkang\", @"1\2\3"); //path = "C:\Users\zhangkang\1\2\3" 获得文件名不包含扩展名 string path = Path.GetFileNameWithoutExtension(@"C:\Users\zhangkang\Desktop\1.txt");
2、File: File 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件的操作。
File类的几个方法: 删除 File.Delete(@"C:\Users\zhangkang\Desktop\新来的.txt");
复制 File.Copy(@"C:\Users\zhangkang\Desktop\1.txt", @"C:\Users\zhangkang\Desktop\2.txt");
剪切 File.Move(@"C:\Users\zhangkang\Desktop\1.txt", @"C:\Users\zhangkang\Desktop\剪切过来的.txt");
3、FileStream FileStream用来文件的读取和写入,打开和关闭文件来对文件进行操作,FileStream相当于一个管道,连接要操作的两个文件,这对于大文件的操作尤为中重要。 FileStream使用就是实例化FileStream对象 推荐使用的FileStream构造函数FileStream(path, FileMode, FileAccess) path :要操作文件的路径 FileMode:用于确定如何打开文件或创建文件 FileMode.Append;若存在文件,则打开该文件并查找到文件尾,或者创建一个新文件。 FileMode.Create;指定操作系统应创建新文件。 如果文件已存在,它将被覆盖。 FileMode.CreateNew;指定操作系统应创建新文件。 FileMode.Open;指定操作系统应打开现有文件。 FileMode.OpenOrCreate: 指定操作系统应打开文件(如果文件存在);否则,应创建新文件。 FileMode.Truncate :指定操作系统应打开现有文件。
FileAccess:定义用于文件读取、写入或读取/写入访问权限的常数。 FileAccess.Read 对文件的读访问。 可从文件中读取数据。 与 Write 组合以进行读写访问。 FileAccess.ReadWrite 对文件的读访问和写访问。 可从文件读取数据和将数据写入文件。 FileAccess.Write 文件的写访问。 可将数据写入文件。 同 Read 组合即构成读/写访问权。
例1:使用FileStream读取文件中的内容
<span style="white-space:pre"> </span>string path = @"C:\Users\zhangkang\Desktop\1.txt";
using(FileStrem fsRead = new FileStream(path, FileMedo.OpenOrCreate, FileAccess.Read))
{
//创建缓冲区的大小
byte[] buffer = new byte[fsRead.Length];
//调用对象的读取数据的方法
int r = fsRead.Read(buffer, 0, buffer.Length);
//将字节转换成字符串
string str = System.Text.Encoding.Default.GetString(buffer);
Console.WriteLine(str);//输出字符串
}
例2:使用FileStream写入文件内容
<span style="white-space:pre"> </span>string path = @"C:\Users\zhangkang\Desktop\1.txt";
using(FileStream fsWrite = new FileStream(path, FileMode.Append, FileAccess.Write))
{
string str = "这句话将追加到文本的末尾";
byte[] buffer = System.Text.Encoding.Default.Getbytes(str);
fsWrite.Write(buffer, 0, buffer.Length);
Console.WriteLine("写入成功");
}
例3:复制文件,涉及文件的读取和写入
public static void CopyFile(string source, string target)
{
//创建读取多媒体文件的文件流
using (FileStream fsRead = new FileStream(source, FileMode.OpenOrCreate, FileAccess.Read))
{
//创建写入多媒体文件的文件流
using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
{
//设置缓冲区的大小
byte[] buffer = new byte[1024 * 1024 * 5];
//调用读文件的对象的读取数据的方法
int r = 0;
while (true)
{
//返回的r是这次读取实际读到的字节数
r = fsRead.Read(buffer, 0, buffer.Length);
//要写r
fsWrite.Write(buffer, 0, r);
if (r == 0)
{
break;
}
}
}
}
}
4、StreamReader和StreamWriter 相比于Stream类,StreamReader和StreamWriter用于对字符的操作,同样通过实例化对象来操作文件。 介绍下它的构造方法 StreamReader(Stream, Encoding) Encoding用于指定字符的编码 StreamWriter(Stream, bool, Encoding)第二个boolean类型参数表示写入的方法,true表示追加,false表示覆盖,默认false。 |