讀取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 }

 

順利解決了問題。遇到無法解決的函數,查看其重載的方法用來替換,是個很重要的技巧啊,很可能柳暗花明又一村了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM