C#_导入文本文件_应用场景是导入配置文件
前言:对比了下面几种方法,速度都很慢,导入3K大小的文本都要好几秒,界面也一直卡着动不了,解决办法是起一个后台线程去干这件事情,效果会好很多。
1、首先最重要的就是获取到文件的路径(获取文件的路径见C#专栏)
2、一共五种方法将文件导入程序的内存中,以字符串形式打印出来
方法一(推荐此方法,因为简介)
//pOpenFileDialog.FileName为路径
//方法三:直接使用File的Read All Text 函数将文本文件内容全部读入text
string text = System.IO.File.ReadAllText(pOpenFileDialog.FileName);
Console.WriteLine(text);
方法二
//方法五:使用StreamReader中的ReadToEnd()函数,将文本中的内容全部读入text
StreamReader sr = new StreamReader(pOpenFileDialog.FileName, System.Text.Encoding.Default);
String ls_input = sr.ReadToEnd().TrimStart();
Console.WriteLine(ls_input);
方法三
//方法一:使用Filestream,将文本一次性全部转换为字节,之后转换为string显示在text中
FileStream fs = new FileStream(pOpenFileDialog.FileName, FileMode.Open, FileAccess.Read);
int n = (int)fs.Length;
byte[] b = new byte[n];
int r = fs.Read(b, 0, n);
Console.WriteLine(Encoding.Default.GetString(b, 0, n));
方法四
//方法二:使用Filestream,逐字节读取文本,后将字节转换为string显示在text中
FileStream fs = new FileStream(pOpenFileDialog.FileName, FileMode.Open, FileAccess.Read);
long n = fs.Length;
byte[] b = new byte[n];
int cnt, m;
m = 0;
cnt = fs.ReadByte();
while (cnt != -1)
{
b[m++] = Convert.ToByte(cnt);
cnt = fs.ReadByte();
}
Console.WriteLine(Encoding.Default.GetString(b));