首页 > 代码库 > URL的getFile()和getPath()方法的区别(转)

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

转自博客: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.

我是一个新手之前一直不清楚是怎么回事,现在明白了!

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