properties檔案第一行獲取的值為null

2021-08-20 04:26:46 字數 1154 閱讀 9257

一、 配置檔案temp.properties如下:

datatransname=data_exchange

updateperson=張三

二、現象描述:後台讀取上傳的update_config.properties檔案內容,根據第一行對應的key(datatransname)獲取值時始終獲取到的值為null。

三、報錯原因分析:

明明是有這個datatransname的key, 卻仍報錯。察看properties類後找到了問題的原因:編碼格式。

properties檔案是基於行來讀取和儲存鍵值對的, 而期望的輸入輸出流字元編碼是iso 8859-1。 那些不能使用該方式儲存的字符集呢,需要使用native2ascii命令對property檔案進行轉碼。

由於我的這個配置檔案中有中文, 所以我使用了utf-8的編碼方式儲存, 使用utf-8儲存的壞處就是會多出一些特殊字元(亂碼); 使用ue在16進製制下檢視發現, datatransname變成了"鍩縟atatransname",當程式中再次查詢datatransname時, 就會報錯, 找不到key(datatransname)。

四、解決方案:

方案一:仍然使用utf-8編碼方式,將第一行給空出來;

方案二:仍然使用utf-8編碼方式,將第一行寫成注釋;

方案四:使用iso 8859-1的編碼方式,中文用/u開頭的unicode方式儲存。

參考文章:

批量刪除TXT檔案第一行和最後一行

終於實現了把python用起來,記錄一下,環境為python3.7,看了一些網上的方法,但這總算是乙個不錯的開端。import os import os.path import codecs 這裡放著你要操作的資料夾名稱 path c users rym desktop 金融 後復權 後復權a股全 ...

vi中跳到檔案的第一行和最後一行

a 輸入 0 或者 1 回車 b 鍵盤按下 小寫 gg a 輸入 回車 b 鍵盤按下大寫 g c 鍵盤按 shift g 其實和第二種方法一樣 vim快速移動游標至行首和行尾 1 需要按行快速移動游標時,可以使用鍵盤上的編輯鍵home,快速將游標移動至當前行的行首。除此之外,也可以在命令模式中使用快...

C語言一行一行讀取檔案

c語言中,使用fgets函式可以一行行讀du取檔案。1 fgets函式 原型 char fgets char buf,int bufsize,file stream 功能 從檔案結構體指標stream中讀取資料,每次讀取一行。說明 讀取的資料儲存在buf指向的字元陣列中,每次最多讀取bufsize ...