C#--StreamWriter和StreamReader对象及常用函数

目录

StreamReader

StreamReader 是 C# 中用于从流(如文件、内存流等)中读取文本数据的类。它提供了多种方法来读取不同类型的数据。以下是一些 StreamReader 类的常用方法:

StreamReader(Stream): 构造函数,创建一个新的 StreamReader 实例,将其连接到指定的流对象,用于从流中读取数据。

Read(): 从流中读取一个字符,并将其作为整数值返回。如果到达了流的末尾,则返回 -1。

ReadLine(): 从流中读取一行字符,并将其作为字符串返回。如果到达了流的末尾,则返回 null。

ReadToEnd(): 从流的当前位置读取到末尾,并将所有字符作为字符串返回。

Peek(): 返回流中下一个可用的字符,但不将其移动到输入流中。

Close(): 关闭 StreamReader 对象,并释放关联的资源。

StreamReader 类可以方便地从流中读取文本数据,并且它可以与其他文本读写类(如 StreamWriter)配合使用,实现对文件的读写操作。

ReadLine()

ReadLine() 是 StreamReader 类的一个方法,用于从流中读取一行字符,并将其作为字符串返回。以下是该方法的解释:

ReadLine() 方法从流中读取一行字符,直到遇到换行符为止(即 \n、\r 或 \r\n),然后将读取到的字符作为一个字符串返回。

如果到达了流的末尾,即已经读取到文件的最后一行,则返回 null。

该方法通常用于按行读取文本文件,每次调用 ReadLine() 方法会读取文件中的下一行文本数据,并将其作为一个字符串返回。

以下是一个示例代码,演示了如何使用 StreamReader 的 ReadLine() 方法从文件中逐行读取数据:

csharp 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = @"D:\C#\WaterCloudModel\example.txt";
        
        // 创建一个 StreamReader 对象来读取文件
        using (StreamReader sr = new StreamReader(filePath))
        {
            string line;
            // 逐行读取文件中的数据,并输出到控制台
            while ((line = sr.ReadLine()) != null)
            {
                Console.WriteLine(line);
            }
        }
    }
}

在上面的示例中,我们创建了一个 StreamReader 对象 sr,并使用 ReadLine() 方法逐行读取文件中的数据,直到文件的末尾。每次调用 ReadLine() 方法都会返回文件中的一行文本数据,然后将其输出到控制台。

Split()

Split 是一个字符串方法,用于将字符串根据指定的分隔符拆分成子字符串数组。以下是该方法的解释:

Split 方法接收一个字符数组或字符串数组作为分隔符参数,并将调用该方法的字符串根据这些分隔符进行拆分。

该方法返回一个字符串数组,其中包含了根据分隔符拆分后的子字符串。

如果字符串中没有分隔符,Split 方法会返回一个只包含原始字符串的数组。

可以通过传递第二个参数来限制拆分后的子字符串的数量,这样可以指定最大拆分数。

以下是一个示例代码,演示了如何使用 Split 方法将字符串按照空格进行拆分:

StreamWriter

StreamWriter 是 C# 中用于将文本数据写入到流(如文件、内存流等)中的类。它提供了多种方法来写入不同类型的数据到流中。以下是一些 StreamWriter 类的常用方法:

StreamWriter(TextWriter): 构造函数,创建一个新的 StreamWriter 实例,将其连接到指定的 TextWriter 对象,用于写入数据。

Write(string): 将指定的字符串写入到流中。

WriteLine(string): 将指定的字符串写入到流中,并在其后添加一个换行符。

Write(char): 将指定的字符写入到流中。

WriteLine(char): 将指定的字符写入到流中,并在其后添加一个换行符。

Write(int): 将指定的整数值写入到流中。

WriteLine(int): 将指定的整数值写入到流中,并在其后添加一个换行符。

Write(double): 将指定的双精度浮点数值写入到流中。

WriteLine(double): 将指定的双精度浮点数值写入到流中,并在其后添加一个换行符。

Flush(): 将缓冲区中的数据立即写入到基础流中,并清空缓冲区。

Close(): 关闭 StreamWriter 对象,并释放关联的资源。

StreamWriter 类提供了方便的方法来向流中写入文本数据,并且它可以与其他文本读写类(如 StreamReader)配合使用,实现对文件的读写操作。

WriteLine()

WriteLine 是 StreamWriter 类的一个方法,用于向流中写入一个字符串,并在其后添加一个换行符。以下是该方法的解释:

WriteLine 方法接收一个字符串参数,并将该字符串写入到流中。

在写入字符串后,WriteLine 方法会自动在其后添加一个换行符,以便下一个写入操作从新的一行开始。

使用 WriteLine 方法写入的字符串将会占据一行,并且每次调用该方法都会写入一个新的行。

以下是一个示例代码,演示了如何使用 WriteLine 方法向文件中写入多行数据:

csharp 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = @"D:\C#\WaterCloudModel\example.txt";
        
        // 创建一个 StreamWriter 对象来写入文件
        using (StreamWriter sw = new StreamWriter(filePath))
        {
            // 使用 WriteLine 方法写入多行数据
            sw.WriteLine("Hello, world!");
            sw.WriteLine("This is line 2.");
            sw.WriteLine("And this is line 3.");
        }
    }
}

在上面的示例中,我们创建了一个 StreamWriter 对象 sw,并使用 WriteLine 方法向文件中写入了三行数据。每次调用 WriteLine 方法都会写入一个新的行,并自动在其后添加一个换行符。

Flush()

Flush() 是 StreamWriter 类的一个方法,用于强制将缓冲区中的数据写入到基础流(即文件流)中,并清空缓冲区。以下是该方法的解释:

Flush() 方法会立即将所有缓冲的数据写入到基础流中,并清空缓冲区,以确保数据被及时写入到文件中。

这在需要确保文件中的数据被立即写入到磁盘中时非常有用,例如在关闭文件之前调用该方法可以确保文件中的所有数据都被写入。

如果不调用 Flush() 方法,StreamWriter 类会在缓冲区填满或关闭时自动将数据写入到基础流中,但有时可能需要立即刷新数据以确保数据的完整性和一致性。

以下是一个示例代码,演示了如何使用 Flush 方法将缓冲区中的数据立即写入到文件中:

csharp 复制代码
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = @"D:\C#\WaterCloudModel\example.txt";
        
        // 创建一个 StreamWriter 对象来写入文件
        using (StreamWriter sw = new StreamWriter(filePath))
        {
            // 写入数据到文件
            sw.WriteLine("Hello, world!");
            
            // 调用 Flush 方法,强制将缓冲区中的数据写入到文件中
            sw.Flush();
            
            // 继续写入其他数据...
        }
    }
}

在上面的示例中,我们创建了一个 StreamWriter 对象 sw,并使用 WriteLine 方法向文件中写入了一行数据。然后调用 Flush 方法,强制将缓冲区中的数据写入到文件中。这样可以确保在关闭文件之前,所有数据都被立即写入到文件中。

Close()

Close() 是 StreamWriter 类的一个方法,用于关闭流并释放关联的资源。以下是该方法的解释:

Close() 方法关闭 StreamWriter 对象,并释放其所使用的所有资源,包括基础流(例如文件流)和缓冲区。

在调用 Close() 方法后,将无法再对该 StreamWriter 对象进行任何读写操作。

在使用完 StreamWriter 对象后,调用 Close() 方法可以确保所有资源被及时释放,以避免资源泄漏和内存泄漏。

相关推荐
日行月白1 分钟前
Day14:关于MySQL的索引——创、查、删
数据库·mysql
laimaxgg31 分钟前
Docker Hub 创建私人镜像仓库
运维·服务器·docker·容器
异常君1 小时前
深入解析 InnoDB 死锁:从案例到方案,全流程透视指南
数据库·后端·mysql
꧁坚持很酷꧂1 小时前
Qt实现文件传输服务器端(图文详解+代码详细注释)
开发语言·数据库·qt
Wythzhfrey1 小时前
单片机Day05---静态数码管
c语言·单片机·嵌入式硬件·学习·c#·51单片机
苏牧keio1 小时前
安装MySQL8.0
数据库
半糖土豆爱编码_1 小时前
【mysql】Mac 通过 brew 安装 mysql 、启动以及密码设置
数据库·mysql·macos
.R^O^2 小时前
计算机知识
linux·服务器·网络·安全
Lary_Rock2 小时前
ubuntu20.04 Android14编译环境配置
大数据·数据库·elasticsearch
sky.fly2 小时前
三层路由器,SSH远程登录访问路由器,通过telnet远程登录访问路由器(不安全),路由器的基本设置之多网络互联解决办法:单臂路由
服务器·网络·计算机网络·智能路由器