A. javaweb 修改properties文件中的屬性值
String realPath1 = getServletContext().getRealPath("/");//這樣你就得到了 你的CLASS目錄 然後再拼裝即可 試用於非WAR包
String realPath2 = getServletContext().getResource("/").getPath();//試用於所有
上面的都是獲取到了CLASS目錄 也就是你工程編譯後的目錄 然後再根據目錄層級拼裝即可
注意 web項目部署到伺服器後 用你之前的方式是拿不到文件的 因為部署到伺服器上面後的目錄都變了 而且文件都放入CLASS目錄下面了 所以你那錯的
B. java 修改properties文件 順序亂掉
java的Properties類繼承自HashTable。HashTable都很熟悉,這是一個存放鍵值對,基於hash表存儲的,所以說順序也是不固定的。因此只要使用java自帶的Properties工具類讀寫properties文件的都是順序不可預知的。如果想實現有順序的方式可以自定義一個類,使用LinkedHashMap做為父類來實現,這樣效率就沒那麼高了。
使用有順序的鍵值對的方式存儲數據推薦使用jdk中提供的LinkedHashMap。這個工具類是基於鏈表的形式存儲鍵值對數據。存放的數據和獲取的順序都是一致的。
C. java修改properties文件 丟失內容
我注意到你寫的這句FileOutputStream fos=new FileOutputStream(resourceFile);運行時會馬上覆蓋掉原有的內容,因此你這句話應該移到將鍵值對載入完成後。
修改如下,測試通過。
/**
*新增或修改資源文件的內容
*
*@paramresourceFile
*資源文件(絕對路徑+文件名,不需要.properties後綴)
*@paramkey鍵
*@paramvalue值
*/
publicstaticvoidsetString(StringresourceFile,Stringkey,Stringvalue){
Propertiesprop=newProperties();
try{
if(resourceFile.indexOf(".properties")==-1){
resourceFile+=".properties";
}
FileInputStreamfis=newFileInputStream(resourceFile);
try{
prop.load(fis);
fis.close();
prop.setProperty(key,value);
FileOutputStreamfos=newFileOutputStream(resourceFile);
prop.store(fos,"CopyrightThcic");
fos.close();
}catch(IOExceptione){
e.printStackTrace();
System.out.println("修改資源文件:"+resourceFile+"異常!msg:"+e.getMessage());
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
System.out.println("無法獲得資源文件:"+resourceFile);
}
}
D. java web啟動時修改並重新載入properties文件
大兄弟,我這兒有一個,你參考一下,但是輸出流問題,沒有得到解決。因為src在項目布置到tomcat上會消失的,所以你看看能不能解決?
E. JAVA中如何重新載入.properties文件,使其他引用實時改變
*Spring提供的PropertiesLoaderUtils允許您直接通過基於類路徑的文件地址載入屬性資源
*最大的好處就是:實時載入配置文件,修改後立即生效,不必重啟
*/
privatestaticvoidspringUtil(){
Propertiesprops=newProperties();
while(true){
try{
props=PropertiesLoaderUtils.loadAllProperties("message.properties");
for(Objectkey:props.keySet()){
System.out.print(key+":");
System.out.println(props.get(key));
}
}catch(IOExceptione){
System.out.println(e.getMessage());
}
try{
Thread.sleep(5000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
F. java web程序註解讀取properties文件,每次修改都需要重啟伺服器,怎麼解決
你是不是用了類似maven的管理工具
然後修改的是src下面的,target也要修改才行
G. java怎麼用java修改.properties文件鍵值,文件在java包中。我能讀到這個文件。但無法修改
讀出來後用set方法修改屬性,然後再用Properties 的save方法保存修改 並且覆蓋原來的info.properties文件不就行了。不過save方法用的輸出流 需要用filewriter寫入/com/zst/warning/config/info.properties文件。
web項目應該沒問題,如果是java應用程序打成jar包後的話就比較麻煩了。要先解壓修改了以後還要再重新打包
H. java修改通過讀取連接資料庫的properties文件之後如何讓其生效
用線程監控文件是否被修改,若修改:
properties文件配置參數在系統中以系統屬性存在就直接重設屬性
若採用spring,則需要刷新數據源