Java程式檔案路徑中有空格的處理

2021-04-20 05:39:18 字數 811 閱讀 3313

有如下程式:

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...