读取Properties文件以及中文乱码问题
Posted 阿丙的博客园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取Properties文件以及中文乱码问题相关的知识,希望对你有一定的参考价值。
在java类中常见的读取Properties文件方式,是使用Properties.load(inputStream);的方式但是常常出现中文乱码问题,这就很尴尬了
public synchronized void load(InputStream inStream) throws IOException { load0(new LineReader(inStream)); }
看了很久才发现,还有一个重载的方法, 它的参数是Reader,如下:
public synchronized void load(Reader reader) throws IOException { load0(new LineReader(reader)); }
而Reader是可以指定字符集的编码格式的,于是尝试如下更改:
1 static{ 2 //初始化读取配置文件中的分表信息 3 Resource resource = new ClassPathResource("splitTable.properties"); 4 Properties props = new Properties(); 5 try { 6 InputStream is = resource.getInputStream(); 7 try { 8 BufferedReader bf = new BufferedReader(new InputStreamReader(is, "UTF-8")); 9 props.load(bf); 10 } finally { 11 is.close(); 12 } 13 } catch (IOException e) { 14 e.printStackTrace(); 15 } 16 projectMap = new HashMap<String,String>((Map) props); 17 }
顺利解决了问题。遇到无法解决的函数,查看其重载的方法用来替换,是个很重要的技巧啊,很可能柳暗花明又一村了
以上是关于读取Properties文件以及中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章
springBoot使用@Value标签读取*.properties文件的中文乱码问题