Java讀取properties文件中文亂碼問題解決


問題的提出:初用properties,讀取java properties文件的時候如果value是中文,會出現讀取亂碼的問題 
問題分析:開始以為是文件保存編碼問題,把eclipse中所有的文件編碼都修改成utf8,問題依然存在;把內容復制到notepad++進行utf8編碼轉換,問題依舊;上網搜索有人提議重寫properties類或者用jdk自帶的編碼轉換工具,嫌麻煩而且憑感覺jdk開發者不可能不考慮東亞幾國的字符編碼問題;因為properties文件操作的代碼是參考百度文庫里的一邊文章的,分析其代碼后,發現其用的是字節流來讀取文件,具體代碼如下: 
Java代碼   收藏代碼
  1. Properties properties = new Properties();  
  2. InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");  
  3. properties.load(inputStream );  
  4. System.out.println(properties.getProperty("a"));  

因為字節流是無法讀取中文的,所以采取reader把inputStream轉換成reader用字符流來讀取中文。代碼如下: 
Java代碼   收藏代碼
  1. Properties properties = new Properties();  
  2. InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");  
  3. BufferedReader bf = new BufferedReader(new    InputStreamReader(inputStream));  
  4. properties.load(bf);  
  5. System.out.println(properties.getProperty("a"));  

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com