Java配置檔案Unicode編碼可能引發的bug

2021-09-02 11:05:58 字數 658 閱讀 8446

發現bug:

在伺服器上部署後台服務並驗證能夠正常執行,但是一次修改配置重啟後突然出現了乙個空指標bug,部署的程式並沒有改變

2.定位bug:

空指標定位到乙個變數,查詢**發現變數初始化來自於讀取配置檔案,但是檢查配置檔案中有正常配置相應值,所以無法找到原因。

後來在開發機器上除錯服務都沒有問題,只好重新部署服務到伺服器,發現是能夠正常執行。

比較兩次部署的服務包,內容完全一致,唯獨配置檔案的二進位制不同,使用十六進製制檢視配置檔案,發現檔案開頭多出了3個位元組的bom頭。

3.解決bug:

使用文字編輯工具將配置檔案的bom頭去掉後,重新啟動服務,驗證能夠正常執行。

4.分析bug:

net.sunyijun

resource-utils

使用該工具庫讀取配置可以相容bom頭。具體用法詳見

readme。

附bom頭規則:

00 00 fe ff = utf-32, big-endian

ff fe 00 00 = utf-32, little-endian

ef bb bf = utf-8,

fe ff = utf-16, big-endian

ff fe = utf-16, little-endian

java 讀取配置檔案

前幾天因為配置檔案的事,線上的job掛掉了,使用的是spring載入配置檔案方式。spring配置如下 test.properties api test.properties decryptpropertyplaceholderconfigurer類如下所示。public class decrypt...

Java讀配置檔案

讀取配置檔案的方案 public string getproperty string name,string k in.close catch exception e return val 在springboot中,可以將其設定為aop的切面 注意 第乙個引數name,直接寫a.properties...

java讀取配置檔案

現今的程式都要求能夠讀寫配置檔案,使得程式的配置資訊能夠很方便地修改。讀取配置檔案通常使用property檔案,下面列舉了從hadoop的hdfs和本地的檔案系統讀取配置的例子。話不多說,上 讀取hdfs配置檔案 public static properties getpropertiesfromh...