如何获取当前工作目录[java]之外的文件的绝对路径

如何获取当前工作目录[java]之外的文件的绝对路径,java,file,path,absolute-path,working-directory,Java,File,Path,Absolute Path,Working Directory,我正在尝试使用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 simpl

我正在尝试使用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
和其他方法,但没有任何效果。可能我遗漏了什么,或者可能我没有在正确的位置进行搜索。

如果您没有给出文件名的路径,那么java正在运行应用程序的目录中进行搜索

例子: 如果文件位于项目的主文件夹中,则将打印
true

public static void main(String[] args) {
        final File foo = new File("asd.txt");
        System.out.println(foo.exists());
    }
编辑: 如果文件不在该文件夹中,则可以使用“
/
”或“
。/
”运算符在文件夹结构中“向上”移动。。。 或者深入文件夹
文件(“/src/asd.txt”)
例如,文件位于src文件夹内


如果要访问不在当前工作目录下的文件,您可以通过编程方式遍历文件系统,或者通过用户输入获得绝对路径,并使用
新文件(绝对路径字符串)
构造
java.io.file
对象。你也可以考虑使用新的<代码> java .Nio.file < /Cord>API。< / P>是的,我知道。事实上,我对当前工作目录及其子目录中的文件没有任何问题。没有任何项目!!!新文件(“/folders/file1.txt”)有什么问题?该指令没有问题,它在我的情况下有效。当我想读取不在当前工作目录子目录中的文件时,就会出现问题。特别是,当我尝试创建File类的实例时,会抛出java.lang.NullPointerException。只要路径正确,文件可以位于任何位置。当文件名不为空时,它如何抛出NPE?哦..它可以工作!谢谢!!!我不知道为什么我还没试过。