[英]exists() does not work but getAbsolutePath() does work
我有以下代码,可根据预先创建的文件“ 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
。
这两种方法是关于文件的不同方面的:
getAbsolutePath()
关于文件名。 在某种程度上,这是一种与实际文件系统完全分离的“字符串处理方法” exists()
与实际文件有关。 它检查在给定路径所标识的位置文件系统中是否存在文件。 请注意,即使在实际文件系统中没有文件或文件夹的情况下, File
getAbsolutePath()
和其他路径操作方法也必须起作用。 否则,API将无法支持文件创建,例如通过createNewFile()
。
文件inputFile = new File(“ / Users / myname / Desktop / project_name / test.brd”); 上面的行不会创建新文件,因此不存在。 如果要创建文件,可以使用方法inputFile.createNewFile()
。 方法getAbsolutePath()对inputFile对象起作用,与文件创建完全不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.