黑马程序员技术交流社区

标题: 关于io中的properties问题 [打印本页]

作者: Chopper    时间: 2014-10-31 12:01
标题: 关于io中的properties问题
  1. public static void loadDemo() throws IOException {
  2.                 Properties prop = new Properties();
  3.                 FileInputStream fis = new FileInputStream("info.txt");
  4.                 prop.load(fis);
  5.                 prop.list(System.out);
  6.         }


  7. public static void main(String[] args) throws IOException {
  8.                 loadDemo();
  9.         }

复制代码

毕老师视频中的源码
当txt文件中有中文时打印的是乱码怎么解决

作者: Rain2692    时间: 2014-10-31 12:06
是使用的流是InputStreamReader等字节转换流
作者: 麦兜表妹    时间: 2014-10-31 12:40
本帖最后由 麦兜表妹 于 2014-10-31 14:18 编辑

还是不讲话了
作者: Chopper    时间: 2014-10-31 12:56
麦兜表妹 发表于 2014-10-31 12:40
FileInputStream fis = new FileInputStream("info.txt");
你使用的是字节输入流。
所以用txt软件打开"inf ...
  1. public static void loadDemo() throws IOException {
  2.                 Properties prop = new Properties();
  3.                 FileInputStream fis = new FileInputStream("info.txt");
  4.                 InputStreamReader isr = new InputStreamReader(fis);
  5.                 prop.load(isr);
  6.                 prop.list(System.out);
  7.         }
复制代码

改成这样依旧乱码
作者: Rain2692    时间: 2014-10-31 13:05
本帖最后由 Rain2692 于 2014-10-31 13:07 编辑
Chopper 发表于 2014-10-31 12:56
改成这样依旧乱码

给你说的转换流,可以指定编码的,你看看InputStreamReader的API文档,里面讲的很详细,有指定编码的参数位置InputStreamReader(InputStream in, CharsetDecoder dec) ,创建使用给定字符集解码器的 InputStreamReader,自己看下

作者: Rain2692    时间: 2014-10-31 13:12
麦兜表妹 发表于 2014-10-31 12:40
FileInputStream fis = new FileInputStream("info.txt");
你使用的是字节输入流。
所以用txt软件打开"inf ...

你去看看老毕的视频,你说的完全不对吗,什么汉字2-3个字节啊,我问你UTF-8和GBK分别是几位的编码?还有txt的文本默认是什么编辑的, Properties里面存的是什么?不是键值对吗?
作者: Chopper    时间: 2014-10-31 15:33
Rain2692 发表于 2014-10-31 13:05
给你说的转换流,可以指定编码的,你看看InputStreamReader的API文档,里面讲的很详细,有指定编码的参数 ...

以解决,多谢指导
作者: Rain2692    时间: 2014-10-31 16:16
Chopper 发表于 2014-10-31 15:33
以解决,多谢指导

不用谢的。。互相交流。。




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