[英]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.