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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢冬 中级黑马   /  2013-3-16 11:31  /  1516 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void loadDemo() throws Exception
        {
                Properties prop = new Properties();
                prop.load(new FileInputStream("properties.txt"));
                prop.list(System.out);
        }
输出结果:
-- listing properties --
????=22
????=23
????=26
奇了怪了,前面的名字怎么全是问号?难道我配置的文件有问题?
文件中的内容是:
张三 =23
李四=22
王五=26

评分

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

查看全部评分

3 个回复

倒序浏览
因为Properties读写操作文件都采用的是ISO 8859-1编码的,你肯定是没有转换,这个编码不支持中文的。。

评分

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

查看全部评分

回复 使用道具 举报
prop.load(new FileInputStream("properties.txt"));
这句话是向prop加载字节流对象,而你文件存储的是汉字。一个汉字是由多个字节组成的,所以字节流对象读取时把一个汉字拆分成多个字节进行转换,当然会乱码了。
prop.load(new FileReader("properties.txt"));
或者 prop.load(new InputStreamReader(new FileInputStream("properties.txt")));
这样修改后就不会出问题了

评分

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

查看全部评分

回复 使用道具 举报
若还有问题,请继续追问;没有的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马