我有一個名爲sysconfig.properties的屬性文件,我想多次讀取它,因爲它是可變的。但是當我改變所述sysconfig.properties的內容,那麼我讀即imutable,這與第一次從systemconfig.properties讀取同一內容的sysconfig.propertes的銼的內容文件如下:Thread.currentThread()。getContextClassLoader()。getResourceAsStream多次讀取屬性文件
isInitSuccess=TRUE
isStartValid=2013
可能有時會發生如下變化:
isInitSuccess=FALSE
isStartValid=2013
讀屬性文件的代碼如下:
InputStream inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath);
我使用的代碼讀取文件mutilple次,但每一次的「isInitSuccess」是「真」,雖然我改變了isInitSuccess = FALSE.Is系統只讀了一次,然後我讀取文件,它只是從內存中獲取輸入流? 但是當我使用下面的代碼,這將很好地工作:
InputStream inStream = new FileInputStream(new File(strPath));
我GOOGLE了,但我沒有發現任何幫助,這個問題困惑了我很多,任何幫助將升值。
非常感謝,你告訴了我很多關於classpath的知識(我是java開發人員的綠色之手)。「ClassLoader中的InputStream和FileInputStream中的InputStream不對應同一個文件。」這是正確的。但在我的具體情況下,它們對應於同一個文件。可能有一些文件在我的claspath中都被稱爲sysconfig.properties文件,但文件內容必須相同。內容爲: isInitSuccess = TRUE isStartValid = 2013 但是,當我更改內容如下: isInitSuccess = TRUE ************* isStartValid = 2013 ************** –
然後我停止了程序並重新啓動它,來自ClassLoader的InputStream和從FileInputStream讀取的內容都是相同的,所以我可以保證他們讀取同一個文件。 –