有如下程式:
string fnm = "/data/tmp/my profile.xml" ;
system.out.println("file name is : "+ fnm);
documentbuilde***ctory factory = documentbuilde***ctory.newinstance();
documentbuilder parser = factory.newdocumentbuilder();
document document = parser.parse( fnm );
element rule = document.getdocumentelement();
namednodemap attribs = rule.getattributes();
string id = attribs.getnameditem("ruleid").getnodevalue();
system.out.println("rule id for this rule is : "+id);
注意:其中檔名中含有空格。
程式執行時會出現「檔案找不到」異常,這是為什麼呢?檔案明明在那裡呀。丟擲異常的語句是document document = parser.parse( fnm ); 方法parse的引數是string uri,問題就是這裡了,字串uri被解釋為乙個uri,而uri不能包含空格。應該在字串的最前面加上file:///,並且把空格替換成%20;另乙個解決辦法是使用fildinputstream來開啟指定的檔案,然後把它做為引數inputstream傳給parse ()。
(完)
java執行shell命令中有空格的處理方法
runtime.getruntime exec cmdstring 如果此時cmdstring中的引數 例如cp檔案時檔名 含有特殊符號空格,此時就會出現錯誤,因為原始碼會按照一些特殊字元 t n r f 注意到其中含有空格 去切分cmdstring變為陣列,所以有空格會導致錯誤,這種情況可以用命令...
如何獲取當前程式檔案的路徑
程序物件在.net中表現為system.diagnostics.process類,通過呼叫process.getcurrentprocess mainmodule.filename可獲得當前執行的exe的檔名。但是這個方法得到的僅僅是檔名,如果程式執行期間沒有切換工作目錄,那麼可以呼叫system....
如何獲取當前程式檔案的路徑
獲取當前程式檔案的路徑也算是乙個比較常見的需求,比如我有乙個檔案conn.xml位於.exe的同一目錄,在執行時需要從中讀取一些設定資訊。程序物件在.net中表現為system.diagnostics.process類,通過呼叫process.getcurrentprocess mainmodule...