求高手解读一下这段代码
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e){
openFileDialog1.Title = "打开文件";
openFileDialog1.Reset();
openFileDialog1.Filter = "文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*";
openFileDialog1.FilterIndex = 2;
if (openFileDialog1.ShowDialog() == DialogResult.OK)//打开对话框
{
string strLine;
filename = openFileDialog1.FileName;
FileStream afile = new FileStream(filename, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(afile);
strLine = sr.ReadLine();
richTextBox1.Text = string.Empty;
while (strLine != null)
{
richTextBox1.Text += strLine + "\r\n";
strLine = sr.ReadLine();
}
sr.Close();
afile.Close();
}
这段代码运行后,打开一个文件,但是在richTexBox1中显示的是一些乱码,所以我想问的是:(1)怎么可以让richTexBox1显示的是原文件内容,而不是乱码?
(2): while (strLine != null)
{
richTextBox1.Text += strLine + "\r\n";
strLine = sr.ReadLine();
}
这代码作用是干嘛的? --------------------编程问答-------------------- 应该是你打开的文件编码问题,查查
2。循环输出,每次读一行。 --------------------编程问答-------------------- StreamWriter sw = new StreamWriter(filename,false,Encoding.GetEncoding("gb2312")); --------------------编程问答-------------------- 1、你用richtextbox显示二进制文件想不乱码都难
2、把读取的字符串追加到richtextbox中 --------------------编程问答-------------------- 2.读文件的经典结构,就是将文件的全部内容显示到文本框中。 --------------------编程问答-------------------- 把txt另存为,在另存为对话框中看看编码方式是什么?换个编码方式看看。
顺道提供个函数,带编码参数的。
public static List<string> ReadText(string filepath,Encoding encode)
{
if (File.Exists(filepath))
{
List<string> contents = new List<string>();
System.IO.FileStream fs = new System.IO.FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader(fs, encode);
string strLine = sr.ReadLine(); //按行读取
//循环读出数据,数据存在data里面。
while (strLine != null)
{
contents.Add(strLine);
strLine = sr.ReadLine();
}
//关闭文件流
sr.Close();
fs.Close();
return contents;
}
else
{
return null;
}
} --------------------编程问答-------------------- 读取时设置编码,这里设置成GB2312,当然看你的读取的文档是什么编码就设置成什么编码
StreamReader sr = new StreamReader(afile);
改成
StreamReader sr = new StreamReader(afile,Encoding.GetEncoding("GB2312"));
(2):
while (strLine != null)//文件未结束
{
richTextBox1.Text += strLine + "\r\n";//一行一行地显示到richTextBox1.Text
strLine = sr.ReadLine();//一行一行的读取文件
}
--------------------编程问答-------------------- while (strLine != null)
{
richTextBox1.Text += strLine + "\r\n";
strLine = sr.ReadLine();
}
把文件内容读出来,直到文件最后 --------------------编程问答--------------------
改完后,只能正确的打开txt类型的文件,word的文档还是乱码,怎么才能使word文档也能正常显示?谢谢! --------------------编程问答--------------------
Word是特殊的格式,不能直接操作,.net提供了操作word的类库去操作,即将Word的Interop库(Microsoft.Office.Interop.Word.dll)加入你项目的引用,利用Word的对象模型来获取你想要的图文内容。
参考http://hi.baidu.com/hclred/blog/item/dacba61c420a538887d6b64b.html
补充:.NET技术 , C#