2011-03-04 23 views
11

有誰知道當我存儲屬性文件時,冒號爲什麼越獄嗎?保存到屬性文件轉義:

我這樣做:

Properties prop = new Properties(); 


// Set the properties value. 

prop.setProperty("url","http://localhost:7101/test/home"); 

並採用存儲:

prop.store(new FileOutputStream(propFile), null); 

它的工作,但輸出已冒號逃過因某些原因:

url=http\://localhost\:7101/test/home 

任何人都知道一個固定?

回答

15

在屬性文件中,這兩個是合法的:

key1 = value 
key2: value 

因此,無論=和:必須進行轉義。

現在,如果您使用屬性讀回事物,這沒有問題。否則,你就必須編寫自定義代碼

+0

打倒我吧。教我適合首先編寫測試代碼,而不是去參加Javadoc。 – 2011-03-04 19:53:16

+0

尊重編寫測試代碼! (讓你想知道爲什麼提出這個問題的人不會開始這樣做;) – iluxa 2011-03-04 20:05:10

2

這是什麼store() API的功能: -

鍵和元素 字符串的每個字符檢查,看它是否 應該呈現爲一個轉義 序列。 ASCII字符\,選項卡, 換頁,換行符和回車 返回分別寫爲\,\ t,\ f \ n, 和\ r。字符少於 比\ u0020和字符大於 比\ u007E寫爲\ uxxxx爲 適當的十六進制值 xxxx。對於密鑰,所有空間 字符都用前面的\字符 寫入。對於 元素,前導空格字符,但 未嵌入或尾隨空格 字符,用前面的\字符 寫入。鍵和 元素字符#,!,=和: 用前面的反斜槓寫入到 確保它們正確加載。

只要您使用Properties來獲取值,它應該不會對您有任何影響。