【问题标题】:How do I load resource using Class Loader as File?如何使用类加载器作为文件加载资源?
【发布时间】:2011-02-12 15:28:30
【问题描述】:

我想使用类加载器打开文件。但是我总是得到一个 FileNotFoundException。如何使用 URL 创建新文件?我不想像文件一样将它作为流打开。

URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...

【问题讨论】:

    标签: java file io classloader file-handling


    【解决方案1】:

    我只是在想:如果 foo 在罐子里怎么办?那你就不能构造文件了。

    如果 foo 真的在(本地)类路径目录中,它应该可以工作 - 但你知道,如果有人将它打包在一个 jar 中,或者通过网络加载它,它将会失败......

    【讨论】:

      【解决方案2】:

      要将file://... URL 转换为java.io.File,您必须结合url.getPath()url.toURI() 以获得安全的解决方案:

      File f;
      try {
          f = new File(url.toURI());
      } catch(URISyntaxException e) {
          f = new File(url.getPath());
      }
      

      完整的解释在这个blog post

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 2015-09-29
        • 2018-10-25
        • 2022-06-16
        • 2019-02-20
        • 1970-01-01
        相关资源
        最近更新 更多