在这篇文章中,将演示如何将java.io.File转换为java.net.URL,反之亦然。

以下示例演示了将File转换为URL。文件:FileToUrlExample.java -

package com.yiibai.tutorial.io;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;

/**
 * @author yiibai
 */
public class FileToUrlExample {
    public static void main(String[] args) {
        File file = new File("C:/Program Files/Java/jdk1.8.0_71/COPYRIGHT");
        if (file.exists()) {
            System.out.println("PATH: " + file.getPath());

            // Convert file to URI
            URI uri = file.toURI();
            System.out.println("URI: " + uri.toString());

            // Convert URI to URL
            URL url;
            try {
                url = uri.toURL();
                System.out.println("URL: " + url.toString());
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }

        }
    }
}

执行上面代码,得到以下结果:

PATH: C:\Program Files\Java\jdk1.8.0_71\COPYRIGHT
URI: file:/C:/Program%20Files/Java/jdk1.8.0_71/COPYRIGHT
URL: file:/C:/Program%20Files/Java/jdk1.8.0_71/COPYRIGHT

以下示例演示了将URL转换为File。

文件:UrlToFileExample.java -

package com.yiibai.tutorial.io;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;

/**
 * @author yiibai
 */
public class UrlToFileExample {
    public static void main(String[] args) {
        try {
            URL url=new URL("file:/C:/Program%20Files/Java/jdk1.8.0_71/COPYRIGHT");
            System.out.println("URL: "+url.toString());

            //Convert URL to URI
            URI uri=url.toURI();
            System.out.println("URI: "+uri.toString());

            //Convert URI to File
            File file=new File(uri.getPath());
            System.out.println("PATH: "+file.getAbsolutePath());

        } catch (MalformedURLException | URISyntaxException e) {
            e.printStackTrace();
        }
    }
}

执行上面示例代码,得到以下结果:

URL: file:/C:/Program%20Files/Java/jdk1.8.0_71/COPYRIGHT
URI: file:/C:/Program%20Files/Java/jdk1.8.0_71/COPYRIGHT
PATH: C:\Program Files\Java\jdk1.8.0_71\COPYRIGHT
`