開門見山的說,第一個參數u,賦的值是 "D://123.txt",於是乎,報錯了,java.net.MalformedURLException: unknown protocol:d
說是d未知協議,協議?我只知道file協議和http協議,哦!!!了解了,你不是要協議么,好,訪問本地文件,給你個協議。
將u的參數賦值為 file:///D://123.txt,果然成功了。
為啥要用三個"/"呢?
因為URL是URI的一個子集,URI的結構為:
如果有host,前面需要加//,因此對於http或https等網絡地址來說會寫成:
這樣看上去很自然。如果是文件的話,文件沒有host,所以中間的host部分就不要了,就變成了:
因為如果沒有host的話,第一個[]的內容就不存在了,這種同意的寫法有一個標准叫CURIE。
總之:URL構造方法,一個參數的時候,需要傳入協議的字符串。
以上純屬個人簡介,有錯誤希望指出,感激不盡。