我有下面的代码,我根据预先创建的文件“test.brd”创建一个文件类型,并在此文件上调用 getAbsolutePath() 方法,这一切都正常工作。但是,当我运行exists()方法时,它被视为不存在。
当我调试时,文件的状态为空,路径也为空,但 getAbsolutePath() 方法有效。我已经调试过了,它进入了exists()方法的Security部分。
请看下面:
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 文件一起存储在本地)时,也会提供正确的绝对路径。
希望这是有道理的。我想做的就是将预先创建的文件读取到数组中,每个字符都是数组中的一个元素,我打算使用 scanner
读取文件,但是 inputFile
code> 不存在,无法读取。
最佳答案
这两种方法涉及文件的不同方面:
getAbsolutePath()
是关于文件名的。从某种程度上来说,这是一种完全脱离实际文件系统的“字符串操作方法”exists()
是关于实际文件的。它检查文件系统中给定路径标识的位置是否存在该文件。
请注意,getAbsolutePath()
和 File
的其他路径操作方法必须即使文件或文件夹不存在于实际中也可以工作文件系统。否则,API 将无法支持文件创建,例如通过createNewFile()
。
关于java - contains() 不起作用,但 getAbsolutePath() 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55044545/