C#StreamReader与StreamWirter

本文介绍如何使用StreamReader从文件中逐行读取文本,并利用StreamWriter将数据逐行写入到文件中。通过示例代码展示了这两种类的基本用法,包括如何打开文件、读取或写入文本,以及关闭文件资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace _11StreamReader与StreamWirter
{
    class Program
    {
        static void Main(string[] args)
        {
            #region StreamReader
            //逐行读取文本文件StreamReader
            string source = @"1.txt";
            using (StreamReader sr = new StreamReader(source, Encoding.Default))
            {
                //StreamReader是逐行的读取文本
                //直到文件的末尾
                while (!sr.EndOfStream)
                {
                    Console.WriteLine(sr.ReadLine());
                }
               
            }
            #endregion


            #region StreamWriter
            //逐行写入文本文件StreamWriter
            string target = @"2.txt";
            using (StreamWriter sw = new StreamWriter(target,true, Encoding.UTF8))
            {
                for (int i = 0; i < 100; i++)
                {
                    sw.WriteLine(i);
                }
                Console.WriteLine("=> WriteLine => OK");
            }
            #endregion
            Console.ReadKey();
        }
    }
}

 

1.1 什么是Stream? 1.2 什么是字节序列? 1.3 Stream的构造函数 1.4 Stream的重要属性及方法 1.5 Stream的示例 1.6 Stream异步读写 1.7 Stream 和其子类的类图 2.1 为什么要介绍 TextReader? 2.2 TextReader的常用属性和方法 2.3 TextReader 示例 2.4 从StreamReader想到多态 2.5 简单介绍下Encoding 编码 2.6 StreamReader 的定义及作用 2.7 StreamReader 类的常用方法属性 2.8 StreamReader示例 3.1 为何介绍TextWriter? 3.2 TextWriter的构造,常用属性和方法 3.3 IFormatProvider的简单介绍 3.4 如何理解StreamWriter? 3.5 StreamWriter属性 3.6 StreamWriter示例 4.1 如何去理解FileStream? 4.2 FileStream的重要性 4.3 FileStream常用构造函数(重要) 4.4 非托管参数SafeFileHandle简单介绍 4.5 FileStream常用属性介绍 4.6 FileStream常用方法介绍 4.7 FileStream示例1:*文件的新建和拷贝(主要演示文件同步和异步操作) 4.8 FileStream示例2:*实现文件本地分段上传 5.1 简单介绍一下MemoryStream 5.2 MemoryStream和FileStream的区别 5.3 通过部分源码深入了解下MemoryStream 5.4 分析MemorySteam最常见的OutOfMemory异常 5.5 MemoryStream 的构造 5.6 MemoryStream 的属性 5.7 MemoryStream 的方法 5.8 MemoryStream 简单示例 : XmlWriter中使用MemoryStream 5.9 MemoryStream 简单示例 :自定义一个处理图片的HttpHandler 6.1 简单介绍一下BufferedStream 6.2 如何理解缓冲区? 6.3 BufferedStream的优势 6.4 从BufferedStream 中学习装饰模式 6.5 如何理解装饰模式 6.6 再次理解下装饰模式在Stream中的作用 6.7 BufferedStream的构造 6.8 BufferedStream的属性 6.9 BufferedStream的方法 6.10 简单示例:利用socket 读取网页并保存在本地 7.1 NetworkStream的作用 7.2 简单介绍下TCP/IP 协议和相关层次 7.3 简单说明下 TCP和UDP的区别 7.4 简单介绍下套接字(Socket)的概念 7.5 简单介绍下TcpClient,TcpListener,IPEndPoint类的作用 7.6 使用NetworkStream的注意事项和局限性 7.7 NetworkStream的构造 7.8 NetworkStream的属性 7.9 NetworkStream的方法 7.10 NetwrokStream的简单示例 7.11 创建一个客户端向服务端传输图片的小示例 版权归作者所有,仅供学习参考
### C# 中 `StreamReader` 的使用方法 #### 创建并初始化 `StreamReader` 为了从文件或其他流源读取字符序列,需创建一个 `StreamReader` 实例。通常情况下,这涉及到指定要打开的文件路径以及如何处理该文件。 ```csharp using System; using System.IO; string filePath = "example.txt"; // 使用 using 语句确保资源被正确释放 using (StreamReader reader = new StreamReader(filePath)) { // 进一步操作... } ``` 此代码片段展示了通过提供文件名作为参数来实例化 `StreamReader` 对象的方式[^2]。 #### 逐行读取文本 当需要按照行的形式获取数据时,可利用 `ReadLine()` 方法实现这一目标。每次调用都会返回下一行直到遇到文件结尾为止。 ```csharp string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); } ``` 上述循环结构能够有效地遍历整个文档,并将每一行的内容打印到控制台窗口中去[^1]。 #### 判断是否到达文件末尾 除了基于 `null` 值判断外,还可以借助于 `EndOfStream` 属性来进行更直观地检测当前指针位置是否已经位于文件末端。 ```csharp while (!reader.EndOfStream) { string line = reader.ReadLine(); Console.WriteLine(line); } ``` 这段逻辑同样适用于顺序访问所有记录项的情况,在某些场景下可能更加清晰易懂一些[^4]。 #### 关闭清理 完成所有的输入/输出活动之后应当及时关闭关联的对象以防止潜在的安全风险或性能瓶颈问题发生;幸运的是,采用 `using` 语法糖可以帮助自动管理这些细节而无需显式编写额外代码。 ```csharp Console.WriteLine("File read successfully."); ``` 一旦超出作用域范围,则会触发对象销毁过程从而保证程序运行环境整洁有序[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值