您的位置:首页 > 编程语言 > Java开发

Java读取properties文件中文乱码问题解决

2016-04-21 19:09 836 查看
问题的提出:初用properties,读取java properties文件的时候如果value是中文,会出现读取乱码的问题

问题分析:开始以为是文件保存编码问题,把eclipse中所有的文件编码都修改成utf8,问题依然存在;把内容复制到notepad++进行utf8编码转换,问题依旧;上网搜索有人提议重写properties类或者用jdk自带的编码转换工具,嫌麻烦而且凭感觉jdk开发者不可能不考虑东亚几国的字符编码问题;因为properties文件操作的代码是参考百度文库里的一边文章的,分析其代码后,发现其用的是字节流来读取文件,具体代码如下:

Java代码  


Properties properties = new Properties();  
InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");  
properties.load(inputStream );  
System.out.println(properties.getProperty("a"));  

因为字节流是无法读取中文的,所以采取reader把inputStream转换成reader用字符流来读取中文。代码如下:

Java代码  


Properties properties = new Properties();  
InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");  
BufferedReader bf = new BufferedReader(new    InputStreamReader(inputStream));  
properties.load(bf);  
System.out.println(properties.getProperty("a"));  

测试后能正常读取中文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: