转自博客:http://blog.csdn.net/l375852247/article/details/7999063
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
in the URL.
我是一个新手之前一直不清楚是怎么回事,现在明白了!