【问题标题】:URI path not absolute exception java(not android)URI路径不是绝对异常java(不是android)
【发布时间】:2015-12-23 03:54:57
【问题描述】:

我有以下一段源代码

import java.net.URI;
import java.net.URISyntaxException;

    File file = new File("pic.png");
    BufferedImage image = ImageIO.read(file);
    String string = "pic.png";
 //the code works fine until here
    URI path = new URI(string);
    File f = new File(path);
    ColorProcessor image = new ColorProcessor(ImageIO.read(f));

所以文件获取的路径是正确的。图像也正确缓冲。 现在我的问题是我得到了以下异常

Exception in thread "main" java.lang.IllegalArgumentException: URI is not absolute
    at java.io.File.<init>(Unknown Source)

为什么我的路径不是绝对的?我该如何做呢?

如果我像这样改变路径:

String string = "C:'\'Users'\'Jurgen'\'newFile'\'myProject'\'pic.png";

也试过这样

String string = "C:/Users/Jurgen/newFile/myProject/pic.png";

然后我得到一个新的异常

Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical
    at java.io.File.<init>(Unknown Source)

附:不适用于 uri 的 android 包

提前致谢=)

【问题讨论】:

    标签: java file exception path uri


    【解决方案1】:

    您正在尝试创建统一资源标识符,但名称应遵循url conventions。这意味着,有必要提供一个方案(查看here,查看所有可用方案)。因此,在您的情况下,您必须使用字符串创建 URI,例如 file:/pic.png 或者可能是其他一些方案。

    至于您的完整路径,可以这样做:

    String string = "file:/C:/Users/Jurgen/newFile/myProject/pic.png";
    

    【讨论】:

    • 再问一个问题,为什么要在路径前面写“file:”?
    • 它决定了你可以处理这个资源的方式。在大多数情况下,它指的是网络协议、数据资源等。Gern geschehen)
    猜你喜欢
    • 2013-01-28
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2016-09-12
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多