1. Java 找出某一個文件夾下的所有文件
要養成查看API文檔的好習慣。File對象的list()方法能夠返回實例化File時,傳入的字元串類型的路徑名稱,此方法返回此路徑下的所有文件及目錄,不帶路徑。而listFiles()方法則返回實例化File時,傳入的抽象字元串類型的路徑名稱,此方法返回此路徑下的所有文件及目錄,含有抽象路徑。
通常情況下,當我們調用System.out.println(Object obj)方法查看API文檔時,會發現System.out返回一個標準的PrintWriter,此PrintWriter是OutputStream的子類。當調用println()方法輸出對象時,實際上是調用了對象的toString()方法。如果對象沒有重寫toString()方法,則直接輸出對象的堆內存地址。
查看API文檔可以得知,File類的toString()方法會返回實例化File對象時傳入的抽象路徑。如果你在test方法中,實例化File對象時使用的是list()方法得到的路徑,那麼此時該抽象路徑本身就只含有文件名而沒有路徑。而另一個方法則使用listFiles()方法,獲取到的都是含有抽象路徑的文件列表。
因此,當你輸出這些文件時,出現的情況就是由於路徑信息的不同導致的。在使用list()方法時,沒有路徑信息,因此直接顯示文件名;而在使用listFiles()方法時,包含路徑信息,因此顯示完整的文件路徑。
綜上所述,理解API文檔對於正確使用文件操作方法至關重要。確保你了解每個方法的返回值及其含義,可以避免很多不必要的錯誤。