File類請使用toURI 而不是toURL

2021-09-01 08:55:41 字數 613 閱讀 2380

file類存在兩個看起來很相似的方法touri()和tourl(),這兩個方法都是將檔案轉換成乙個鏈結,可以網路訪問。只是uri和url的應用範圍不同,uri來的更廣。

那麼為什麼要使用touri()而不是tourl()呢?如果要將檔案轉換成乙個url的話,這樣來得更簡單。因為tourl()存在bug。

在file轉化成uri的時候,會將鏈結中的特殊字元如#或!等編碼,而tourl()確不會。

如將「c:documents and settingstest.xsl」進行轉化

touri()得到的是:file:/c:/documents and settings/test.xsl

tourl()得到的是:file:/c:/documents and settings/test.xsl

也就是說touri()將空格都轉譯成了 ,而tourl()什麼都沒管。sun也有人提到了這個bug(4273532,6179468)。

雖說在瀏覽器中沒有轉譯不會有問題,因為有的瀏覽器已經自動轉譯了。但很多程式或者元件對於這樣的路徑都會丟擲異常,認為是有錯誤的,這個bug中就有實實在在的例子。

所以要將file轉換成url的話,請使用file.touri().tourl(),而不是file.tourl()

File類簡單使用

file string pathname 根據乙個路徑得到file物件 file string parent,string child 根據乙個目錄和乙個子檔案 目錄得到file物件 file file parent,string child 根據乙個父file物件和乙個子檔案 目錄得到file物件...

File類的使用

file 表示磁碟或者網路的某個檔案或者資料夾,物件導向 磁碟上的檔案或者網路上的檔案,資料夾都是物件 file的物件用來封裝乙個檔案或者資料夾。建立file物件,封裝檔案 file fil3 newfile d test2 2.txt 判斷dir物件封裝的是否是乙個檔案 boolean resul...

File類的使用

j a.io.file類表示檔案或目錄,只用於表示檔案或目錄得資訊,不能用於檔案的訪問。常用的api 1.建立file物件 file file new file string path 注意 file.seperater 獲取系統分隔符,如 2.boolean file.exists 是否存在.3....