C# FileStream简单介绍和使用
C# FileStream简单介绍和使用
简介
FileStream是C#中用于文件操作的类之一,它可以对文件进行读写操作。使用FileStream类操作文件时,首先需要创建FileStream的实例,然后使用该实例的方法来进行文件读写操作。
创建FileStream实例
在创建FileStream实例时,要指定文件路径和文件模式。文件模式可以是读模式、写模式、追加模式。
FileStream fileStream = new FileStream(path, FileMode mode);其中,path表示文件路径,mode表示文件模式,可用的文件模式有以下三种:
FileMode.Create: 如果文件不存在,则新建文件。如果文件已经存在,则清空文件并打开。FileMode.Open: 如果文件不存在,则抛出异常。如果文件已经存在,则打开文件。FileMode.Append: 如果文件不存在,则新建文件。如果文件已经存在,则追加到文件结尾。
读取文件
使用FileStream读取文件时,可以先将文件内容读入一个byte数组中,然后再将byte数组转化为字符串。示例代码如下:
FileStream fileStream = new FileStream(filePath, FileMode.Open);byte[] bytes = new byte[fileStream.Length];fileStream.Read(bytes, 0, (int)fileStream.Length);string content = Encoding.UTF8.GetString(bytes);fileStream.Close();在上述代码中,fileStream.Read(bytes, 0, (int)fileStream.Length)读取文件内容并存储到bytes数组中,Encoding.UTF8.GetString(bytes)将byte数组转化为字符串。
写入文件
使用FileStream写入文件时,可以先将要写入的文本内容转化为byte数组,然后再将byte数组写入到文件中。示例代码如下:
string content = "Hello, World!";byte[] bytes = Encoding.UTF8.GetBytes(content);FileStream fileStream = new FileStream(filePath, FileMode.Create);fileStream.Write(bytes, 0, bytes.Length);fileStream.Flush();fileStream.Close();在上述代码中,Encoding.UTF8.GetBytes(content)将要写入的文本内容转化为byte数组,fileStream.Write(bytes, 0, bytes.Length)将byte数组写入到文件中,fileStream.Flush()将缓冲区的数据写入到文件中。
示例
示例一:读取文件
假设有一个文本文件,其路径为D:\test.txt,文件内容为Hello, World!。以下示例代码实现了从该文件中读取文本内容,并将内容打印输出。
FileStream fileStream = new FileStream("D:\\test.txt", FileMode.Open);byte[] bytes = new byte[fileStream.Length];fileStream.Read(bytes, 0, (int)fileStream.Length);string content = Encoding.UTF8.GetString(bytes);fileStream.Close();Console.WriteLine(content);运行上述代码,输出结果为:
Hello, World!示例二:追加写入文件
假设有一个文本文件,其路径为D:\test.txt,文件内容为Hello, World!。以下示例代码实现了向该文件中追加写入文本内容Nice to meet you!。
string content = "Nice to meet you!";byte[] bytes = Encoding.UTF8.GetBytes(content);FileStream fileStream = new FileStream("D:\\test.txt", FileMode.Append);fileStream.Write(bytes, 0, bytes.Length);fileStream.Flush();fileStream.Close();运行上述代码,再次读取D:\test.txt文件的内容,输出结果为:
Hello, World!Nice to meet you!