C# WinForm读取txt文件 并且显示的问题 、

2024-11-03 16:47:54
推荐回答(5个)
回答1:

C#读写txt文件的两种方法:

1.添加命名空间
  System.IO;
  System.Text;

2.文件的读取
  (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出。
byte[] byData = new byte[100];
char[] charData = new char[1000];
public void Read()
{
try
{
FileStream file = new FileStream("E:\\test.txt", FileMode.Open);
file.Seek(0, SeekOrigin.Begin);
file.Read(byData, 0, 100); //byData传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
Decoder d = Encoding.Default.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
file.Close();
}
catch (IOException e)
{
Console.WriteLine(e.ToString());
}
}

  (2).使用StreamReader读取文件,然后一行一行的输出。
public void Read(string path)
{
StreamReader sr = new StreamReader(path,Encoding.Default);
String line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line.ToString());
}
}

3.文件的写入
  (1).使用FileStream类创建文件,然后将数据写入到文件里。
public void Write()
{
FileStream fs = new FileStream("E:\\ak.txt", FileMode.Create);
//获得字节数组
byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!");
//开始写入
fs.Write(data, 0, data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}

  (2).使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。
public void Write(string path)
{
FileStream fs = new FileStream(path, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write("Hello World!!!!");
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}

回答2:

一般读取文件中的内容送到界面显示,界面控件所在线程肯定就是你的主线程。如果文件比较大,读取时需要一点时间也是可以理解的,像很多文本编辑器在打开很大的文件时多少还是有点卡的。这个就看你能不能接受了。

既然你说到了委托和线程,那我猜想你是想另外开一个线程,用来读取文件,而主线程就只负责将内容在界面控件中显示。但是没必要搞这么复杂吧?

你可以把你这部分代码贴出来大家帮你看看。

最后吐槽一下,你键盘除了“、”,别的标点符号按键都坏了么?

回答3:

1开读取线程
2循环读取n行
3委托更新1下界面
线程thread 和委托 *.invoke 都有很多例子自己百度吧

再高级点 可以光读取屏幕显示的,等用户操作时候根据操作读取相应内容显示,多余的不用读取 这样就最快了,不过要写算法判断显示内容

回答4:

try
{
StreamReader sr = new StreamReader(filepath, Encoding.Default);
String db_name = System.Configuration.ConfigurationSettings.AppSettings["db_name"];
String line;
sb.Append(db_name+"\r\n");
sb.Append(DateTime.Now.ToString() + "\r\n");
int i = 0;
while ((line = sr.ReadLine()) != null)
{
i++;

if (i<=9)
{
sb.Append(line + "\r\n");
textBox1.AppendText(line);
}

}
sb.Append("*" + "\r\n");
sr.Close();
}
catch
{
MessageBox.Show("读取文件失败");
return "";
}
自己再尝试几下

回答5:

建议将txt文件中的内容保存为xml格式,在调用中会明显提速,如果不行,尝试精简调用过程