如何获取当前工作目录[java]之外的文件的绝对路径
我正在尝试使用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
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?哦..它可以工作!谢谢!!!我不知道为什么我还没试过。