URL的getFile()和getPath()方法的区别

来源:互联网 发布:中国象棋开局软件 编辑:程序博客网 时间:2024/06/11 23:36
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.

我是一个新手之前一直不清楚是怎么回事,现在明白了!
原创粉丝点击