【问题标题】:java.net.URL refer to a file in a parent directotyjava.net.URL 引用父目录中的文件
【发布时间】:2014-02-20 15:09:09
【问题描述】:

我有一个非常基本的问题。我需要一个 URL 对象,但该文件位于与项目相关的上一个目录中。

例如,如果我这样做

File testFile = new File("../../data/myData.xml");

工作得很好,它找到了文件

然而,

URL testURL = new URL("file:///../../data/myData.xml")

给出一个

线程“主”java.io.FileNotFoundException 中的异常:/../../data/myData.xml

任何想法,如何解决,解决这个问题?不改变数据的位置?

提前非常感谢 阿尔托伯

【问题讨论】:

  • 你需要给出文件的完整路径

标签: java file path


【解决方案1】:

你可以用这个

URL testURL = new File("../../data/myData.xml").toURI().toURL();

【讨论】:

    【解决方案2】:
    /**
     * @param args
     */
    public static void main(String[] args) {
    
    try {
        URL testUrl = new URL("file://C:/Users/myName/Desktop/abc.txt");
        System.out.println(testUrl.toString());
    } catch (MalformedURLException e) {
    
        e.printStackTrace();
    }
    
        }
    }
    

    上面的代码是工作文件,刚刚测试过,所以你需要使用file://,如果可能的话试试完整路径

    【讨论】:

    • 非常感谢,但我们的想法是尽量避免使用绝对路径,因为它是许多开发人员共享的项目。
    【解决方案3】:

    线程“主”java.io.FileNotFoundException 中的异常:/../../data/myData.xml

    注意它是在寻找根目录的父目录,而不是当前目录的父目录。

    不知道File URLs是否可以引用相对路径,试试

    ‘新 URL("file://../../data/myData.xml")''

    【讨论】:

    • “我不知道文件 URL 是否可以引用相对路径” relative URI。
    • 我试过了。看来fge是对的。拉克什曼有正确的答案。感谢您的宝贵时间。
    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多