老生常谈C# 中的 StreamReader 和 StreamWriter 类

 更新时间:2024年06月25日 10:41:06   作者:锋.谢  
这篇文章主要介绍了老生常谈C# 中的 StreamReader 和 StreamWriter 类,StreamReader 和 StreamWriter 位于 System.IO 命名空间中,当您想要读取或写入基于字符的数据时,这两个类都很有用,需要的朋友可以参考下

在这里插入代码片StreamReader 和 StreamWriter 位于 System.IO 命名空间中。当您想要读取或写入基于字符的数据时,这两个类都很有用。这两个类都处理 Unicode 字符。

StreamReader 派生自抽象类“TextReader”,StreamWriter 派生自“TextWriter”。

下表显示了 StreamWriter 类的一些成员。

成员描述
Close()关闭当前StreamWriter对象和底层流,此方法相当于Dispose(),用于释放资源。
Write()此方法用于将数据写入不带换行符的文本流。
WriteLine()此方法用于将数据写入带有新行的文本流。

下表显示了 StreamReader 类的一些成员。

成员描述
Close()关闭当前StreamReader对象和底层流,此方法相当于Dispose(),用于释放资源。
Read()从输入流读取下一个字符。
ReadLine()从当前流中读取一行字符并以字符串形式返回数据。
ReadToEnd()从当前位置读取流直至流的末尾。

让我们看一个例子,我们使用 StreamWriter 将数据写入文件,并使用 StreamReader 从文件读取数据。为了读取或写入文件,File 类提供了 2 个方法,分别返回 StreamReader 或 StreamWriter 对象。

  • CreateText(string filepath):将数据写入文件;返回StreamWriter对象
  • OpenText(string filepath):从文件读取数据;返回一个StreamReader对象

下面介绍如何创建示例。

创建一个名为“StreamWriterAndStreamReaderExample”的新项目,并创建 2 个静态方法,一个用于读取文件,另一个用于写入文件。换句话说,就是 ReadFromFile() 和 WriteToFile()。在程序的源文件中导入 System.IO 命名空间,其中包含处理文件输入和输出的所有类。

在这个例子中,我们将把从 1 到 10 的表写入一个文件中,并使用这些类读取该文件。

Program.cs

class Program
{
    static void Main(string[] args)
    {
        Console.ForegroundColor = ConsoleColor.Green;
        Console.Title = "StreamReader and StreamWriter";
        WriteToFile();
        ReadFromFile();
        Console.ForegroundColor = ConsoleColor.Gray;
    }
    public static void ReadFromFile()
    {
        using (StreamReader sr = File.OpenText(@"E:\Programming Practice\CSharp\Console\table.tbl"))
        {
            string tables = null;
            while ((tables = sr.ReadLine()) != null)
            {
                Console.WriteLine("{0}", tables);
            }
            Console.WriteLine("Table Printed.");
        }
    }
    public static void WriteToFile()
    {
        using (StreamWriter sw = File.CreateText(@"E:\Programming Practice\CSharp\Console\table.tbl"))
        {
            sw.WriteLine("Please find the below generated table of 1 to 10");
            sw.WriteLine("");
            for (int i = 1; i <= 10; i++)
            {
                for (int j = 1; j <= 10; j++)
                {
                    sw.WriteLine("{0}x{1}= {2}", i, j, (i * j));
                }
                sw.WriteLine("==============");
            }
            Console.WriteLine("Table successfully written on file.");
        }
    }
}

在前面的例子中,WriteToFile() 方法用于将数据写入文件“table.tbl”,然后使用 ReadFromFile() 方法从该文件读取数据。您可以创建具有任何扩展名的文件,如 .txt、.abc、.tlb 等。为了将数据写入文件,我们创建了一个 StreamWriter 对象,该对象调用 WriteLine() 方法来写入数据;为了从文件读取数据,我们创建了一个 StreamReader 对象,该对象调用 ReadLine() 方法;在读取文件时,数据将存储在 while 循环中的字符串中,直到读取所有数据。在 Main() 中调用这两个方法。

当您运行应用程序时,WriteToFile() 将在指定位置创建一个文件,如下所示。

用记事本打开此文件来查看内容。

输出

希望本文能帮助您理解 C# 中的 StreamReader 和 StreamWriter 类。

到此这篇关于老生常谈C# 中的 StreamReader 和 StreamWriter 类的文章就介绍到这了,更多相关C# StreamReader 和 StreamWriter 类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Winform利用分页控件实现导出PDF文档功能

    Winform利用分页控件实现导出PDF文档功能

    当前的Winform分页控件中,当前导出的数据一般使用Excel来处理,但是有框架的使用客户希望分页控件能够直接导出PDF,所以本文整理了一下分页控件导出PDF的处理过程,分享一下
    2023-03-03
  • C#使用Socket实现局域网聊天

    C#使用Socket实现局域网聊天

    这篇文章主要为大家详细介绍了C#使用Socket实现局域网聊天的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • C#中string.Empty和null的区别详解

    C#中string.Empty和null的区别详解

    这篇文章主要介绍了C#中string.Empty和null的区别详解,本文同时讲解了空字符串和Empty的区别以及string.Empty与null的区别,需要的朋友可以参考下
    2015-06-06
  • 举例讲解C#编程中委托的实例化使用

    举例讲解C#编程中委托的实例化使用

    这篇文章主要介绍了C#编程中委托的实例化使用,包括委托的声明和多播委托的创建等内容,需要的朋友可以参考下
    2016-01-01
  • C#中的引用类型以及特殊引用类型详解

    C#中的引用类型以及特殊引用类型详解

    本文详细讲解了C#中的引用类型以及特殊引用类型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#日期转换函数分享

    C#日期转换函数分享

    这篇文章介绍了C#日期转换函数,有需要的朋友可以参考一下
    2013-10-10
  • C#实现Excel转PDF时设置内容适应页面宽度

    C#实现Excel转PDF时设置内容适应页面宽度

    将Excel转为PDF格式时,通常情况下转换出来的PDF页面都是默认的宽度大小。所以本文提供了C#实现Excel转PDF时设置内容适应页面宽度的示例代码,需要的可以参考一下
    2022-04-04
  • C#调用JS的几种方法

    C#调用JS的几种方法

    这篇文章主要介绍了C#调用JS的几种方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#调用C++ DLL bool返回值始终为true的问题

    C#调用C++ DLL bool返回值始终为true的问题

    这篇文章主要介绍了C#调用C++ DLL bool返回值始终为true的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • c#关于JWT跨域身份验证的实现代码

    c#关于JWT跨域身份验证的实现代码

    这篇文章主要介绍了c#关于JWT跨域身份验证的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论