A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 782385854 中级黑马   /  2013-11-2 11:30  /  1510 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 782385854 于 2013-11-2 13:27 编辑

[img][/img]
  1.         private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             OpenFileDialog  ofd = new OpenFileDialog();//打开一个对话框
  4.             ofd.Title = "打开文件";  //设置对话框的标题
  5.             ofd.Filter = "文本文件|*.txt|所有文件|*。*";
  6.             if (ofd.ShowDialog() == DialogResult.OK)
  7.             {
  8.                 //用户点击了打开
  9.              //textBox1.Text =      File.ReadAllLines(ofd.FileName);
  10.                 //第一步声明一个文件流
  11.                 FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
  12.                 //创建读写器
  13.                 StreamReader sr = new StreamReader(fs);
  14.                   //读取一行          sr.ReadLine();
  15.                 //读取到最后
  16.                 textBox1.Text = sr.ReadToEnd();
  17.                 //关闭读取器
  18.                 fs.Close();
  19.                 sr.Close();
  20.             }
  21.         }
复制代码

V~4CVG4NL1}WY1%3UQGQ2GK.jpg (66.23 KB, 下载次数: 41)

V~4CVG4NL1}WY1%3UQGQ2GK.jpg

评分

参与人数 1技术分 +1 收起 理由
陈行 + 1

查看全部评分

4 个回复

倒序浏览
注意 StreamReader类的解释是 使其以一种特定的编码从字节流中读取字符。你没有选定编码方式应为new StreamReader(fs,Encoding.Default ); 还有“所有文件|*。*";”句号改为点号。

评分

参与人数 1技术分 +1 收起 理由
陈行 + 1

查看全部评分

回复 使用道具 举报
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));初始化该流需要指定字符编码,中文系统下默认是gb2312。也可以用Encoding.Default,这样你里面的中文就不会乱码了。

评分

参与人数 1技术分 +1 收起 理由
陈行 + 1

查看全部评分

回复 使用道具 举报
谢谢啦,改好了
回复 使用道具 举报
可以在方法中定义字符的编码,
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, Encoding.Default);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马