有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在使用NIO2 API时消除检查异常

目前,在Guava API的帮助下,我正在使用以下代码从类路径加载属性文件:

final URL fileURL = Resources.getResource("res.properties");
final File file = new File(fileURL.getFile());

我决定尝试一下Java7SE中引入的新NIO2 API,并删除任何Guava API调用,因此我将代码转换为以下内容:

final URL fileURL = getClass().getResource("/res.properties");
final Path path = Paths.get(fileURL.toURI());

但是修改后的代码在URLURI之间发生转换的行中抛出一个选中的异常。我有没有办法摆脱它。例如,我可以用给定的URL获取一个Path实例吗

另外,我知道修改后的代码在语义上与原来的代码不同-Guava的getResource抛出IllegalArgumentException如果没有找到资源,Java的getResource在这种情况下返回null


共 (2) 个答案

  1. # 1 楼答案

    你可以使用:

    final File file = new File(fileURL.getFile());
    final Path path = file.toPath(); //can throw an unchecked exception
    
  2. # 2 楼答案

    以下是我的发现:

    final URL fileURL = getClass().getResource("/res.properties");
    final URI fileURI = URI.create(fileURL.toString());
    final Path path = Paths.get(fileURI);