我有以下代码,借此基于预先创建的文件“ test.brd”创建文件类型,并在此文件上调用getAbsolutePath()方法,所有这些都可以正常工作。但是,当我运行exist()方法时,这被视为不存在。
当我调试时,文件的状态为null,路径也为null,但是getAbsolutePath()方法仍然有效。我已经调试,它进入了exist()方法的“安全性”部分。
请参见以下内容:
File inputFile = new File("/Users/myname/Desktop/project_name/test.brd");
// The below works and returns the path
System.out.println(inputFile.getAbsolutePath());
if (inputFile.exists()) {
System.out.println("Exists");
}
else {
System.out.println("Invalid");
}
即使我在没有绝对路径的情况下构造文件,仅给出文件名作为参数(与Java文件一起本地存储),也会提供正确的绝对路径。
希望这是有道理的。我要做的就是将预先创建的文件读入Array,每个字符都是数组中的一个元素,我打算使用scanner
来读取文件,但是inputFile
不存在被阅读。
答案 0 :(得分:2)
这两种方法涉及文件的不同方面:
getAbsolutePath()
与文件名有关。在某种程度上,这是一种与实际文件系统完全分离的“字符串处理方法” exists()
与实际文件有关。它检查文件系统中文件是否位于给定路径所标识的位置。请注意,即使在实际文件系统中没有文件或文件夹的情况下,getAbsolutePath()
和File
的其他路径操作方法也必须有效。否则,API将无法支持文件创建,例如通过createNewFile()
。
答案 1 :(得分:0)
答案 2 :(得分:0)
file inputFile = new File(“ / Users / myname / Desktop / project_name / test.brd”);
上面的行不会创建新文件,因此不存在。
如果要创建文件,可以使用方法inputFile.createNewFile()
。
方法getAbsolutePath()用于inputFile对象,与文件创建完全不同。