java.net.MalformedURLException: unknown protocol: 異常


開門見山的說,第一個參數u,賦的值是 "D://123.txt",於是乎,報錯了,java.net.MalformedURLException: unknown protocol:d

說是d未知協議,協議?我只知道file協議和http協議,哦!!!了解了,你不是要協議么,好,訪問本地文件,給你個協議。

將u的參數賦值為 file:///D://123.txt果然成功了。

為啥要用三個"/"呢?

因為URL是URI的一個子集,URI的結構為:

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

如果有host,前面需要加//,因此對於http或https等網絡地址來說會寫成:

https://blog.csdn.net/lishanleilixin/article/category/7191777

這樣看上去很自然。如果是文件的話,文件沒有host,所以中間的host部分就不要了,就變成了:

file:///lishanleilixin/article/category/7191777

因為如果沒有host的話,第一個[]的內容就不存在了,這種同意的寫法有一個標准叫CURIE。

總之:URL構造方法,一個參數的時候,需要傳入協議的字符串。

以上純屬個人簡介,有錯誤希望指出,感激不盡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM