URL的getFile()和getPath()方法的區別
阿新 • • 發佈:2019-01-31
import java.net.MalformedURLException; import java.net.URL; public class dd { /** * @param args */ public static void main(String[] args) { try { URL url = new URL("file://ftp.yoyodyne.com/pub/files/foobar.txt?id=123456"); System.out.println("url.getFile()="+url.getFile()); System.out.println("url.getPath()="+url.getPath()); } catch (MalformedURLException e) { e.printStackTrace(); } } }
返回的結果:
url.getFile()=/pub/files/foobar.txt?id=123456
url.getPath()=/pub/files/foobar.txt
當將上面的
file://ftp.yoyodyne.com/pub/files/foobar.txt?id=123456
改成
file://ftp.yoyodyne.com/pub/files/foobar.txt
時:
返回的結果:
url.getFile()=/pub/files/foobar.txt
url.getPath()=/pub/files/foobar.txt
java docs文件上說的:
The URL.getFile()
javadocs
say this:
Gets the file name of this URL. The returned file portion will be the same as getPath(), plus the concatenation of the value of getQuery(), if any. If there is no query portion, this method and getPath() will return identical results.
They will be the same unless there is a query string, e.g. a ?somename=value&somethingelse=value2