这篇文章将为大家详细讲解有关如何使用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类同样有很多方式: