------读取的数据对照小的时候:
如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(filePath) 或指定编码方法 File.ReadAllText(FilePath, Encoding)的要领。它们都一次性将文本内容全部读完,并返回一个包罗全部文本内容的字符串
用string接收
string str1 = File.ReadAllText(@"c:\temp\a.txt"); //也可以指定编码方法
string str2 = File.ReadAllText(@"c:\temp\a.txt", Encoding.ASCII);
也可以使用要领File.ReadAllLines,该要领一次性读取文本内容的所有行,返回一个字符串数组,数组元素是每一行的内容
string[] strs1 = File.ReadAllLines(@"c:\temp\a.txt");
// 也可以指定编码方法
string[] strs2 = File.ReadAllLines(@"c:\temp\a.txt", Encoding.ASCII);
-----读取数据对照大的时候,给与流的方法:
当文本的内容对照大时,我们就不要将文本内容一次性读完,而应该给与流(Stream)的方法来读取内容。
.Net为我们封装了StreamReader类,它旨在以一种特定的编码从字节流中读取字符。StreamReader类的要领不是静态要领,所以要使用该类读取文件首先要实例化该类,在实例化时,要供给读取文件的路径。
StreamReader sR1 = new StreamReader(@"c:\temp\a.txt");
// 读一行
string nextLine = sR.ReadLine();
// 同样也可以指定编码方法
StreamReader sR2 = new StreamReader(@"c:\temp\a.txt", Encoding.UTF8);
FileStream fS = new FileStream(@"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类型
// 读一行
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 = File.OpenText(@"C:\temp\a.txt"); string nextLine; while ((nextLine = sR.ReadLine()) != null) { Console.WriteLine(nextLine); } sR.Close();