java中URL和File的相互轉化


  URL用於網絡,所以帶有明顯的protocol,而且對於中文及符號支持的很不好。File就是我們平常系統中的文件路徑了,對於中文及符號都支持,但是已經沒有protocol了。所以,雖然兩者都可以表示文件路徑,但是卻不能混用了。

URL to File: 
URL url=……; 
File file=new File(url.toURI());   或 
file=new File(url.getFile()); 

File to URL: 
File file=……; 
URL url=file.toURL();

  A file object is used to a give a filename. Creating the File object doesn't mean that a file exists. It may be that the does not exist. Suppose if the file exists, first of all we need to convert the file object in URL, for this we use a method toURL(). It returns aURL object and throws MalformedException. After this we will convert this URL to a file object by using getFile() method. We will read this file by using BufferedReader object.

toURL() : It is used to convert the file name into the URL. getFile() : This is the method of the URL class, is used to get the file name from the URL.

Here is the code of the program:

import java.io.*;
import java.net.*;

public class ConstructFileNamePath{
  public static void main(String[] args){
  File file=new File("C:/work/chandan/deepak.txt");
  URL url=null;
  try{
  //The file may or may not exist
  url=file.toURL(); //file:/C:/work/chandan/deepak.txt
  System.out.println("The url is" + url);

  // change the URL to a file object
  file=new File(url.getFile());  // c:/work/chandan/deepak.txt
  System.out.println("The file name is " + file);
  int i;
  
  //opens an input stream
  InputStream is=url.openStream();
  BufferedReader br=new BufferedReader(new InputStreamReader(is));
  do{
  i=br.read();
  System.out.println((char)i);
  }while (i!=-1);
  is.close();
  }
  catch (MalformedURLException e){
  System.out.println("Don't worry,exception has been caught" + e);
  }
  catch (IOException e){
  System.out.println(e.getMessage());
  }  
  }
}

The url is file:/C:/work/chandan/deepak.txt

The file name is  C:\work\chandan\deepak.txt

 C:\work\chandan\deepak.txt (系統找不到指定的路徑。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM