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文档对于正确使用文件操作方法至关重要。确保你了解每个方法的返回值及其含义,可以避免很多不必要的错误。