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() 方法可以确保所有资源被及时释放,以避免资源泄漏和内存泄漏。

相关推荐
火星papa19 分钟前
C# 创建快捷方式文件和硬链接文件
c#·快捷方式·硬链接
DC_BLOG24 分钟前
Redis基础配置
数据库·redis·缓存
Bio Coder29 分钟前
shell查看服务器的内存和CPU总量
运维·服务器·内存·cpu
ccnnlxc34 分钟前
shell编程第四天(day036)
linux·运维·服务器
莳花微语39 分钟前
Oracle RMAN异机迁移数据库从文件系统至ASM
数据库·oracle·数据库迁移
就是有点傻1 小时前
WPF中的Button按钮中的PreviewMouseLeftButtonDown事件和MouseLeftButtonDown的区别
c#·wpf
TPCloud1 小时前
部署自动清理任务解决ORA-00257: archiver error. Connect internal only, until freed
数据库·oracle·ora-00257
shepherd枸杞泡茶1 小时前
C# 数据结构之【队列】C#队列
开发语言·数据结构·c#
BetterJason1 小时前
ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页
linux·运维·服务器
神仙别闹1 小时前
基于C语言实现的(控制台)校园导航系统
java·服务器·c语言