【发布时间】:2016-03-19 10:47:00
【问题描述】:
我正在尝试使用 Java 中的 File 和 URL 类读取当前工作目录之外的文件。我知道当前工作目录默认由.“表示”。
假设我的Java类在/folders/Desktop/MyClass.java下,如果我想读取/folders/Desktop/file1.txt中的一个文件file1.txt,我可以这样做:
URL url = getClass().getResource("./file1.txt"); /* or "./anotherFolder/../file1.txt", or simply "file1.txt"*/
File f = new File(url.getPath());
一切都按预期进行。
但是我应该怎么做才能读取不在当前工作目录中且不在其子目录中的文件?例如,如果文件的路径是/folders/file1.txt?我到处搜索,但找不到任何东西。我尝试了../file1.txt、./../file1.txt 和其他人,但没有任何效果。也许我错过了什么,或者我没有在正确的地方搜索。
【问题讨论】:
-
new FIle("/folders/file1.txt") 有什么问题?
-
该指令没有任何问题,它适用于我的情况。当我想读取不在当前工作目录的子目录中的文件时会出现问题。特别是,当我尝试创建 File 类的实例时,会引发 java.lang.NullPointerException。
-
我的意思是不使用资源,只使用新文件(文件名)。只要路径正确,文件就可以在任何地方。文件名不为空时如何抛出NPE?
-
哦..它有效!非常感谢!!!我不知道为什么我还没有尝试过。
标签: java file path absolute-path working-directory