让代码更简单

当前位置:代码狗 > 开发教程 > C#开发教程 > 正文

C#读写文本文件教程

C#读写文件使用频繁,熟练掌握是必须的。C#提供了StreamReader 和 StreamWriter 类用于文本文件的数据读写。这些类从抽象基类 Stream 继承,Stream 支持文件流的字节读写。

StreamReader 类

StreamReader 类继承自抽象基类 TextReader,表示阅读器读取一系列字符。

下面列出了 StreamReader 类中一些常用的方法:

  • public override void Close()
    关闭 StreamReader 对象和基础流,并释放任何与读者相关的系统资源。
  • public override int Peek()
    返回下一个可用的字符,但不使用它。
  • public override int Read()
    从输入流中读取下一个字符,并把字符位置往前移一个字符。

实例

下面的实例演示了读取名为 Jamaica.txt 的文件。文件如下:

using System;
using System.IO;

namespace FileApplication
{
class Program
{
static void Main(string[] args)
{
try
{
// 创建一个 StreamReader 的实例来读取文件 
// using 语句也能关闭 StreamReader
using (StreamReader sr = new StreamReader("c:/jamaica.txt"))
{
string line;

// 从文件读取并显示行,直到文件的末尾 
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception e)
{
// 向用户显示出错消息
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
}
}

当你编译和执行上面的程序时,它会显示文件的内容。

StreamWriter 类

StreamWriter 类继承自抽象类 TextWriter,表示编写器写入一系列字符。

下面列出了 StreamWriter 类中一些常用的方法:

  • public override void Close()
    关闭当前的 StreamWriter 对象和基础流。
  • public override void Flush()
    清理当前编写器的所有缓冲区,使得所有缓冲数据写入基础流。
  • public virtual void Write(bool value)
    把一个布尔值的文本表示形式写入到文本字符串或流。(继承自 TextWriter。)
  • public override void Write( char value )
    把一个字符写入到流。
  • public virtual void Write( decimal value )
    把一个十进制值的文本表示形式写入到文本字符串或流。
  • public virtual void Write( double value )
    把一个 8 字节浮点值的文本表示形式写入到文本字符串或流。
  • public virtual void Write( int value )
    把一个 4 字节有符号整数的文本表示形式写入到文本字符串或流。
  • public override void Write( string value )
    把一个字符串写入到流。
  • public virtual void WriteLine()
    把行结束符写入到文本字符串或流。

实例

下面的实例演示了使用 StreamWriter 类向文件写入文本数据:

using System;
using System.IO;

namespace FileApplication
{
class Program
{
static void Main(string[] args)
{

string[] names = new string[] {"Zara Ali", "Nuha Ali"};
using (StreamWriter sw = new StreamWriter("names.txt"))
{
foreach (string s in names)
{
sw.WriteLine(s);

}
}

// 从文件中读取并显示每行
string line = "";
using (StreamReader sr = new StreamReader("names.txt"))
{
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Console.ReadKey();
}
}
}

感觉很棒!可以赞赏支持我哟~

赞(2) 打赏

评论 1

  1. #1

    来看看,学习一下

    aimi3个月前 (09-05)回复
×

请作者吃根烤肠!

支付宝