一、文件的读取
当读取的文件的不多时,且都是一次将文本内容读取完,可以使用:
1.File.ReadAllText(FilePath),指定编码方式时 File.ReadAllText(FilePath,Encoding)的方法返回一个包含全部文本内容的字符串。
2.File.ReadAllLines(FilePath),指定编码方式时 File.ReadAllLines(FilePath,Encoding)的方法返回一个字符串数组。
当读取的文件内容较多时,并且不要把文件内容一次读完时,我们应该采用流(Stream)的方式来读取内容,初始化StreamReader类有很多方式。
1.StreamReader(FilePath),指定编码方式时 StreamReader(FilePath,Encoding)的方法。
2.StreamReader(FileStream),指定编码方式时 StreamReader(FileStream,Encoding)的方法。
3.File.OpenText(FilePath),FileInfo.OpenText()。
以上初始化完成之后,可以每次读一行,也可以每次读一个字符后者几个字符,也可以一次全部读完。
二、字符串的分割读取
用StreamReader来读取文件内容时,有时需要按行按类型进行读取,例如这样的文件内容的读取:
这个文件的内容很简单,但需要按行按类型进行读取和存储,这里可以用Split来分割读取和存储,并按行以数组的形式来存储,具体的代码如下图所示:
static void Main(string[] args)
{
ReadFile();
Console.ReadKey();
}
static void ReadFile()
{
string filename = "D:\\2345Downloads\\C#的学习\\临时文件\\Demo\\BL1.txt";
var reader = new StreamReader(filename);
string buf = reader.ReadLine();
int[] number=new int[4];
string[] siteName=new string[4];
double[] B=new double[4];
double[] L=new double[4];
for (int i = 0; i < 4; i++)
{
buf = reader.ReadLine();
var arr = buf.Split(' ');
number[i] = int.Parse(arr[0]);
siteName[i] = arr[1];
B[i] = double.Parse(arr[2]);
L[i] = double.Parse(arr[3]);
Console.WriteLine("{0} {1} {2} {3}",number[i], siteName[i],B[i],L[i]);
}
reader.Read();
}