黑马程序员技术交流社区

标题: InputStreamReader按指定编码读取文件的显示问题 [打印本页]

作者: newlaw2013    时间: 2012-4-12 19:21
标题: InputStreamReader按指定编码读取文件的显示问题
本帖最后由 newlaw2013 于 2012-4-12 19:24 编辑

写了如下的代码,lqe.txt文件是我用记事本编写好,然后以UTF-8编码另存后的文件。
不知道为什么运行后的结果会是图片中的样子?
  1. import java.io.*
  2. class TransDemo
  3. {
  4. public static void main(String[] args) throws IOException
  5. {
  6. readUTF();
  7. }

  8. public static void readUTF() throws IOException
  9. {
  10. BufferedReader bufr =
  11. new BufferedReader(new InputStreamReader(new FileInputStream("lqe.txt"),"UTF-8"));

  12. String line = null;
  13. while((line=bufr.readLine())!=null)
  14. {
  15. System.out.println(line);
  16. }
  17. bufr.close();
  18. }
  19. }
复制代码

作者: 莫运飞    时间: 2012-4-12 20:11
系统默认的是gbk编码,你用系统写的 txt文件却用utf-8来读取,肯定是读取不出的。你将utf-8换成gbk就可以随便怎么读都可以了。呵呵
作者: 刘基军    时间: 2012-4-12 22:03
使用文本文档时,以UTF-8编码保存一个文件时,它会加点东西在里面(大小占三个字节的).
当你保存为空的时候,就可以看出来了.具体什么原理不知道,但可以解释那个多出来的"?".




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2