zoukankan      html  css  js  c++  java
  • 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 (系统找不到指定的路径。)

  • 相关阅读:
    升级linux bash
    vim关键字自动补全
    linux bash shell之变量替换::=句法、=句法、:句法、句法、=?句法、?句法、:+句法、+句法
    使用Bash编写Linux Shell脚本7.复合命令
    使用Bash编写Linux Shell脚本5.变量
    使用Bash编写Linux Shell脚本8.调试和版本控制
    Perl之单引号\双引号的字符串直接量
    linux bash shell 中的单引号和双引号
    使用Bash编写Linux Shell脚本6.表达式
    Vim的行号、语法显示等设置,即.vimrc文件的配置
  • 原文地址:https://www.cnblogs.com/youxin/p/2464515.html
Copyright © 2011-2022 走看看