有一个URL   URL url= file:/D:/work/bois/resources
             
             File file =new File(url+"/data.properties");            找不到文件是怎么回事啊,用
                File file= new File(url.getFile(), "resources" + File.separator + "data.properties");
             就能找到文件,这是什么原因难道URL不能直接换成String?

解决方案 »

  1.   

    你把它强制转换成string后,再用第一种方法试试。
      

  2.   

    File file =new File("D:/work/bois/resources/data.properties");试试呢
    可能new File()参数里不识别 file:/关键字
      

  3.   

    URL不能直接转成String找地址的,据说是java遗留问题。。是不是这样啊
      

  4.   


    public static void main(String[] args) {
    URL url = ArrayDemo.class.getClassLoader().getResource("snmpAgreement.properties");
    System.out.println(url);
    File file = new File(url.getFile());
    System.out.println(url.getFile());
    System.out.println(file.exists());
    }
    file:/D:/workspace/pro/bin/snmpAgreement.properties
    /D:/workspace/pro/bin/snmpAgreement.properties
    true
      

  5.   

    楼上的,用File file = new File(url.getFile()); 没问题,
    用File file = new File(url.toString());就找不出来昨天试了 
      

  6.   

    好像不能直接转,但是把url.toString()打印的东西剪贴直接访问,能找到文件,估计和操作系统有关吧
      

  7.   

    String path = url.toURI().getPath();
      

  8.   

    URL是基于URL访问,File是基于文件系统访问,两者的资源定位字符串不一样。
      

  9.   

    toString行不行主要是看toString转换出来的String是否满足你的new File("")的string的要求,感觉这个跟系统没什么关系吧,就像Object的toString方法一样,这样主要看内部的实现,