当涉及到文件或者文件夹的操作时,我们就要使用文件流。文件流是.NET框架中常用的IO流之一,用于在程序与文件之间传输数据。在本文中,我将详细介绍文件流的使用方法,并提供两个示例。
文件流的基本使用方法
文件流的基本使用步骤如下:
- 打开或创建文件流
- 通过读取或写入方法读取或写入数据
- 关闭文件流
示例代码:
using System.IO;
// 打开或创建文件流
FileStream fs = new FileStream("file.txt", FileMode.OpenOrCreate);
// 写入数据
byte[] data = Encoding.UTF8.GetBytes("Hello World!");
fs.Write(data, 0, data.Length);
// 关闭文件流
fs.Close();
在这个示例中,我们使用FileStream
类创建了一个名为“file.txt”的文件流,并将“Hello World!”写入到文件中。
如果我们要读取文件中的数据,我们可以使用以下代码:
using System.IO;
// 打开文件流
FileStream fs = new FileStream("file.txt", FileMode.Open);
// 读取数据
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
string strData = Encoding.UTF8.GetString(data);
// 关闭文件流
fs.Close();
// 输出数据到控制台
Console.WriteLine(strData);
在这个示例中,我们使用FileStream
类打开了一个名为“file.txt”的文件流,并从文件中读取数据。然后我们将读取的数据输出到控制台。
示例一:文件复制
以下是使用文件流进行文件复制的示例代码:
using System.IO;
// 打开源文件和目标文件流
FileStream source = new FileStream("source.txt", FileMode.Open);
FileStream target = new FileStream("target.txt", FileMode.Create);
// 读取并写入数据
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
{
target.Write(buffer, 0, bytesRead);
}
// 关闭流
source.Close();
target.Close();
在这个示例中,我们打开了名为“source.txt”和“target.txt”的文件流。我们使用一个缓冲区来从源文件中读取数据,并将它们写到目标文件中。
示例二:压缩文件
以下是使用文件流进行文件压缩的示例代码:
using System.IO;
using System.IO.Compression;
// 打开源文件流
FileStream source = new FileStream("source.txt", FileMode.Open);
// 创建压缩文件流
FileStream target = new FileStream("target.gz", FileMode.Create);
GZipStream gzip = new GZipStream(target, CompressionMode.Compress);
// 将数据压缩并写入压缩文件流
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
{
gzip.Write(buffer, 0, bytesRead);
}
// 关闭流
source.Close();
gzip.Close();
在这个示例中,我们打开了名为“source.txt”的文件流,并创建了一个名为“target.gz”的压缩文件流。我们使用一个缓冲区来从源文件中读取数据,并将它们压缩写入到目标文件中。
总结
在本文中,我介绍了文件流的基本使用方法,并提供了两个示例,分别是文件复制和文件压缩。当您需要操作文件或文件夹时,使用文件流是一个很好的选择。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET中的IO操作之文件流用法分析 - Python技术站