无涯教程-C# - 读取和写入文本文件函数

81 阅读2分钟

StreamReaderStreamWriter类用于从文本文件读取数据和向文本文件写入数据。

StreamReader类

StreamReader类还从抽象基类TextReader继承,TextReader表示用于读取一系列字符的readerx。下表说明了StreamReader类的一些方法

Sr.No. Method & 描述
1

public override void close()

它关闭流,并释放系统资源。

2

public override int Peek()

返回下一个可用字符,但不使用它。

3

public override int read()

从输入流中读取下一个字符,并将字符位置向前推进一。

以下示例演示了如何读取名为jamica.txt的文本文件。文件读取-

Down the way where the nights are gay
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop
using System;
using System.IO;

namespace FileApplication { class Program { static void Main(string[] args) { try { //Create an instance of StreamReader to read from a file. //The using statement also closes the StreamReader. using (StreamReader sr = new StreamReader("c:/jamaica.txt")) { string line;

           </span><span class="com">//Read and display lines from the file until </span><span class="pln">
           </span><span class="com">//the end of the file is reached. </span><span class="pln">
           </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">((</span><span class="pln">line </span><span class="pun">=</span><span class="pln"> sr</span><span class="pun">.</span><span class="typ">ReadLine</span><span class="pun">())</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
              </span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="pln">line</span><span class="pun">);</span><span class="pln">
           </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
     </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="com">//Let the user know what went wrong.</span><span class="pln">
        </span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"The file could not be read:"</span><span class="pun">);</span><span class="pln">
        </span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="pln">e</span><span class="pun">.</span><span class="typ">Message</span><span class="pun">);</span><span class="pln">
     </span><span class="pun">}</span><span class="pln">
     </span><span class="typ">Console</span><span class="pun">.</span><span class="typ">ReadKey</span><span class="pun">();</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">

} }

StreamWriter类

StreamWriter类继承自表示writer的抽象类TextWriter,后者可以写入一系列字符。

Sr.No. Method & 描述
1

public override void close()

关闭当前StreamWriter对象。

2

public override void flush()

清除当前writer的所有缓冲区,并导致将任何缓冲的数据写入流。

3

public virtual void Write(bool value)

将布尔值的文本表示形式写入文本字符串或流。

4

public override void write(Char Value)

将字符写入流。

5

public virtual void Write(decimal value)

将十进制值的文本表示形式写入文本字符串或

6

public virtual void Write(double value)

将8字节浮点值的文本表示形式写入文本字符串或流。

7

public virtual void Write(int value)

将4字节有符号整数的文本表示形式写入文本字符串或流。

8

public override void write(String Value)

将字符串写入流。

9

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);
            }
         }
         
         //Read and show each line from the file.
         string line = "";
         using (StreamReader sr = new StreamReader("names.txt")) {
            while ((line = sr.ReadLine()) != null) {
               Console.WriteLine(line);
            }
         }
         Console.ReadKey();
      }
   }
}

编译并执行上述代码时,将生成以下输出-

Zara Ali
Nuha Ali

参考链接

www.learnfk.com/csharp/csha…