
文件流的使用(C#)
发布日期:2021-05-08 22:20:31
浏览次数:19
分类:精选文章
本文共 2961 字,大约阅读时间需要 9 分钟。
C# 文件操作实例代码解析
本文将详细介绍几种常见的文件操作方法,包括读取、写入以及文件复制等功能,基于C#编程语言实现。
一、文件流读取
public void FilestreamRead(){ // 创建用于读取的文件流 FileStream fsRead = new FileStream(@"路径", FileMode.OpenOrCreate, FileAccess.Read); // 确定读取缓冲区的大小,建议设置较大的值以提高读取效率 byte[] buffer = new byte[1024 * 1024 * 5]; // 从文件流读取数据到缓冲区 int r = fsRead.Read(buffer, 0, buffer.Length); // 将缓冲区中的字节转换为字符串 string s = Encoding.UTF8.GetString(buffer, 0, r); // 关闭文件流 fsRead.Close(); // 释放文件流占用的资源 fsRead.Dispose(); // 输出读取结果 Console.WriteLine(s);}
说明:该方法使用FileStream
类来读取文件内容。首先,指定要读取的文件路径和操作模式(如只读),然后创建一个足够大的缓冲区来存储读取的数据。通过Read
方法从文件流读取数据并存储在缓冲区中,最后将缓冲区中的字节解码为字符串并输出。需要注意的是,文件路径应根据实际使用情况进行调整。
二、使用StreamReader读取文件
public void StreamReader(){ // 使用StreamReader读取文件 using (StreamReader sr = new System.IO.StreamReader(@"路径")) { // 循环读取直到达到末尾 while (!sr.EndOfStream) { // 逐行读取文件内容并输出 Console.WriteLine(sr.ReadLine()); } }}
说明:StreamReader
类提供了一种更简便的方式来读取文本文件。通过ReadLine
方法可以逐行读取文件内容,直到达到文件末尾。该方法适用于处理文本文件,能够自动处理不同编码格式。
三、使用StreamWriter写入文件
public void StreamWriter(){ // 创建用于写入的StreamWriter using (StreamWriter sw = new System.IO.StreamWriter(@"路径", true)) { // 启用追加模式(可选) sw.WriteLine("新内容"); // 如果需要写入多行,可以循环调用WriteLine方法 sw.WriteLine("更多内容"); }}
说明:StreamWriter
类用于向文件中写入文本内容。与StreamReader
类似,通过WriteLine
方法可以逐行写入文件内容。StreamWriter
还支持追加模式(true
参数),适用于需要多次写入同一个文件的情况。
四、文件流写入
public void FilestreamWrite(){ // 创建用于写入的文件流 using (FileStream fsWrite = new FileStream(@"路径", FileMode.OpenOrCreate, FileAccess.Write)) { // 需要写入的内容 string str = "示例内容"; // 将字符串转换为字节数组 byte[] buffer = Encoding.UTF8.GetBytes(str); // 将字节数组写入文件流 fsWrite.Write(buffer, 0, buffer.Length); }}
说明:该方法使用FileStream
类来向文件中写入字节数据。首先创建一个用于写入的文件流,然后将要写入的内容转换为字节数组,最后通过Write
方法将字节数组写入文件流。需要注意的是,文件路径和访问权限需根据实际情况进行配置。
五、文件复制
public void CopyFile(){ // 源文件路径 string source = @"路径"; // 目标文件路径 string target = @"路径"; // 创建用于读取的文件流 using (FileStream fsRead = new FileStream(source, FileMode.Open, FileAccess.Read)) { // 创建用于写入的文件流 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) { // 创建一个足够大的缓冲区 byte[] buffer = new byte[1024 * 1024 * 5]; // 读取文件数据并写入目标文件 while (true) { // 读取数据 int r = fsRead.Read(buffer, 0, buffer.Length); // 如果读取到0字节,表示已读取完毕 if (r == 0) { break; } // 将读取的数据写入目标文件 fsWrite.Write(buffer, 0, r); } } }}
说明:该方法实现了文件的复制功能。首先创建用于读取源文件的文件流,然后创建用于写入目标文件的文件流。通过循环读取源文件的数据并将其写入目标文件中,直到读取完成。
以上方法均基于C#的System.IO
命名空间,适用于处理文件操作任务。每个方法都提供了清晰的代码示例和简要说明,方便开发者理解和使用。
发表评论
最新留言
很好
[***.229.124.182]2025年04月19日 10时33分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【CSS进阶】伪元素的妙用--单标签之美
2019-03-06
惊闻NBC在奥运后放弃使用Silverlight
2019-03-06
IE下尚未实现错误的原因
2019-03-06
创建自己的Docker基础镜像
2019-03-06
Python 简明教程 --- 20,Python 类中的属性与方法
2019-03-06
KNN 算法-理论篇-如何给电影进行分类
2019-03-06
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2019-03-06
CODING 敏捷实战系列课第三讲:可视化业务分析
2019-03-06
工作动态尽在掌握 - 使用 CODING 度量团队效能
2019-03-06
CODING DevOps 深度解析系列第二课报名倒计时!
2019-03-06
数据结构第八节(图(下))
2019-03-06
基于Mustache实现sql拼接
2019-03-06
POJ 2260 Error Correction 模拟 贪心 简单题
2019-03-06
gRPC在 ASP.NET Core 中应用学习(一)
2019-03-06
@SuppressWarnings 用法
2019-03-06
看完你就明白的锁系列之锁的状态
2019-03-06
看完这篇操作系统,和面试官扯皮就没问题了
2019-03-06
我的价值观
2019-03-06
一文详解 Java 并发模型
2019-03-06
值类型与引用类型(中)
2019-03-06