如何使用c#读写文本文件

  介绍

这篇文章将为大家详细讲解有关如何使用c#读写文本文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

读取txt文件

如果你要读取的文件内容不是很多,可以使用File.ReadAllText (filePath)或指定编码方式文件。ReadAllText (FilePath编码)的方法。它们都一次性将文本内容全部读完,并返回一个包含全部文本内容的字符串

string  str1 =, File.ReadAllText (@" c: \ temp \ a.txt"),,//也可以指定编码方式,   string  str2 =, File.ReadAllText (@" c: \ temp \ a.txt",, Encoding.ASCII);

也可以使用方法文件。ReadAllLines,该方法一次性读取文本内容的所有行,返回一个字符串数组,数组元素是每一行的内容

string [], strs1 =, File.ReadAllLines (@" c: \ temp \ a.txt"),,//,也可以指定编码方式,   时间=string [], strs2  File.ReadAllLines (@" c: \ temp \ a.txt",, Encoding.ASCII);

当文本的内容比较大时,我们就不要将文本内容一次性读完,而应该采用流(流)的方式来读取内容。

。网络为我们封装了StreamReader类,它旨在以一种特定的编码从字节流中读取字符.StreamReader类的方法不是静态方法,所以要使用该类读取文件首先要实例化该类,在实例化时,要提供读取文件的路径。实例化StreamReader类有很多种方式。下面我罗列出几种:

StreamReader  sR1 =, new  StreamReader (@" c: \ temp \ a.txt"),,//,同样也可以指定编码方式,   StreamReader  sR2 =, new  StreamReader (@" c: \ temp \ a.txt",, Encoding.UTF8);      FileStream  fS =, new 文件流(@" C: \ temp \ a.txt",, FileMode.Open,, FileAccess.Read,, FileShare.None),,   StreamReader  sR3 =, new  StreamReader (fS),,   StreamReader  sR4 =, new  StreamReader (fS, Encoding.UTF8);      FileInfo  myFile =, new  FileInfo (@" C: \ temp \ a.txt"),,//,OpenText 创建一个UTF-8 编码的StreamReader对象,   StreamReader  sR5 =, myFile.OpenText ();//,OpenText 创建一个UTF-8 编码的StreamReader对象,   StreamReader  sR6 =, File.OpenText (@" C: \ temp \ a.txt");

初始化完成之后,你可以每次读一行,也可以每次读一个字符,还可以每次读几个字符,甚至也可以一次将所有内容全部读完

//,读一行,   string  nextLine =, sR.ReadLine ();//,读一个字符,   int  nextChar =, sR.Read ();//,读100个字符,   int  n =,, 100;   char [], charArray =, new  char [n];,   int  nCharsRead =, sR.Read (charArray,, 0,, n),,,   ,,,,//,全部读完,   string  restOfStream =, sR.ReadToEnd ();

使用完StreamReader之后,不要忘记关闭它:sR.Close ();

假如我们需要一行一行的读,将整个文本文件读完,下面看一个完整的例子:

StreamReader  sR =, File.OpenText (@" C: \ temp \ a.txt"),,   string  nextLine,   while  ((nextLine =, sR.ReadLine ()), !=, null),   {,   ,,,Console.WriteLine (nextLine);,   },   sR.Close ();

写入txt文件

写文件和读文件一样,如果你要写入的内容不是很多,可以使用File.WriteAllText方法来一次将内容全部写如文件。如果你要将一个字符串的内容写入文件,可以用File.WriteAllText (FilePath)或指定编码方式文件。WriteAllText (FilePath编码)方法

string  str1 =,“Good 早上好!“;,,   File.WriteAllText (@" c: \ temp \ \ a.txt"测试;,,str1),,//,也可以指定编码方式,   File.WriteAllText (@" c: \ temp \ \ a.txt"测试;,,str1,, Encoding.ASCII);

如果你有一个字符串数组,你要把数组的每一个元素作为一行写入文件中,可以用文件。WriteAllLines方法

string [], strs =,{早上,“Good  !“,“Good 下午!“,“Good 晚上!“;},,   File.WriteAllLines (@" c: \ temp \ a.txt",, str),,//,也可以指定编码方式,   File.WriteAllLines (@" c: \ temp \ a.txt",, str,, Encoding.ASCII);

使用File.WriteAllText或File.WriteAllLines方法时,如果指定的文件路径不存在,会创建一个新文件,如果文件已经存在,则会覆盖原文件

当要写入的内容比较多时,同样也要使用流(流)的方式写入

。网络为我们封装了StreamWriter类,它以一种特定的编码向字节流中写入字符.StreamWriter类的方法同样也不是静态方法,所以要使用该类写入文件首先要实例化该类,实例化StreamWriter类同样有很多方式:

如何使用c#读写文本文件