.exist() - 使用相对路径时文件不存在
.exist() - file does not exist, when using relative path
编辑:如果您遇到了这个问题,您很可能不熟悉工作目录这个概念。
我不知道这是否特定于 IntelliJ IDEA 的当前工作目录,或者我对相关文件的概念了解不够。我确实得出了解决我的问题的结论,但它给我留下了很多未解决的问题,我不喜欢只记住东西,我想理解它。这就是为什么我在这里问这个问题,提前谢谢你。
假设你有
- 一个 Class 叫
Main
- 一个名为
text1.txt
的文本文件
它们都位于文件夹 src
在Main
class你写了下面的代码
public class Main {
public static void main(String[] args) {
// Scanner
Scanner scanner = new Scanner(System.in);
// File object
File myFile = new File("text1.txt");
// Prints a String, that tells you if the file exists
System.out.println("File exists = " + myFile.exists());
}
}
Result: File exists = false
为什么会这样?
这个问题已经得到了很好的回答,但是,如果您觉得这对您来说还不够,那么请阅读下面的文章,它会更深入。
绝对路径从文件系统根开始。将其与信件上的地址进行比较。邮递员知道把那封信投递到哪里。
相对路径不是目标地址。它更像是——当你看到加油站时,向左转。根据您来自哪个方向,您最终会到达其他不同的位置。
回到计算机:相对路径是根据当前工作目录计算的。您可以通过检查
从 java 程序中打印出来
How to get the current working directory in Java?
我通常会编写我的代码以更清楚地了解事件。下面的代码不仅会告诉它是否找到了文件,还会让你知道它在哪里搜索它。
// File object
File myFile = new File("text1.txt");
// Prints a String, that tells you if the file exists
System.out.println("File "+myFile.getAbsolutePath()+" exists = " + myFile.exists());
编辑:如果您遇到了这个问题,您很可能不熟悉工作目录这个概念。
我不知道这是否特定于 IntelliJ IDEA 的当前工作目录,或者我对相关文件的概念了解不够。我确实得出了解决我的问题的结论,但它给我留下了很多未解决的问题,我不喜欢只记住东西,我想理解它。这就是为什么我在这里问这个问题,提前谢谢你。
假设你有
- 一个 Class 叫
Main
- 一个名为
text1.txt
的文本文件
它们都位于文件夹 src
在Main
class你写了下面的代码
public class Main {
public static void main(String[] args) {
// Scanner
Scanner scanner = new Scanner(System.in);
// File object
File myFile = new File("text1.txt");
// Prints a String, that tells you if the file exists
System.out.println("File exists = " + myFile.exists());
}
}
Result: File exists = false
为什么会这样?
这个问题已经得到了很好的回答,但是,如果您觉得这对您来说还不够,那么请阅读下面的文章,它会更深入。
绝对路径从文件系统根开始。将其与信件上的地址进行比较。邮递员知道把那封信投递到哪里。
相对路径不是目标地址。它更像是——当你看到加油站时,向左转。根据您来自哪个方向,您最终会到达其他不同的位置。
回到计算机:相对路径是根据当前工作目录计算的。您可以通过检查
从 java 程序中打印出来How to get the current working directory in Java?
我通常会编写我的代码以更清楚地了解事件。下面的代码不仅会告诉它是否找到了文件,还会让你知道它在哪里搜索它。
// File object
File myFile = new File("text1.txt");
// Prints a String, that tells you if the file exists
System.out.println("File "+myFile.getAbsolutePath()+" exists = " + myFile.exists());