String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
list和listFile方法遍历的是构造方法中给出的目录
如果构造方法中给出的路径目录不存在,会抛出空指针异常
如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
遍历能获取隐藏的文件和文件夹
package com.baidu;
import java.io.File;
/*
String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
注意:
list和listFile方法遍历的是构造方法中给出的目录
如果构造方法中给出的路径目录不存在,会抛出空指针异常
如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
遍历能获取隐藏的文件和文件夹
*/
public class ListDirectory {
public static void main(String[] args) {
//show01();
//show02();
show03();
}
/*
String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
遍历构造方法中给出的目录,会获取目录所有文件/文件夹的名称,把获取到的多个名称存储到一个String类型的数组中
*/
private static void show01() {
File file = new File("F:\\develop");
String[] arr = file.list();
for (String fileName : arr) {
System.out.println("遍历目录下的所有文件或者文件夹的名称:"+fileName);
}
}
/*
空指针异常示例
*/
private static void show02(){
File file = new File("F:\\develop\\1.txt");
String[] list = file.list();
for (String fileName : list) {
System.out.println(fileName);
}
}
/*
空指针异常代码,为什么会产生空指针?是因为list方法访问的必须是目录,不能是文件
Exception in thread "main" java.lang.NullPointerException
at com.baidu.ListDirectory.show02(ListDirectory.java:40)
at com.baidu.ListDirectory.main(ListDirectory.java:17)
*/
/*
list方法源码:
public String[] list() {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkRead(path);
}
if (isInvalid()) {
return null;
}
return fs.list(this);
}
*/
/*
遍历目录不存在也会打印空指针异常
*/
/*
File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
遍历构造方法中给出的目录,会获取目录中所有的文件/文件夹,把文件/文件夹封装为File对象,多个
对象存储到File数组中
*/
/*
show03方法中打印fileName相当于调用fileName.toString方法
toString源码:
public String toString() {
return getPath();
}
*/
private static void show03(){
File file = new File("F:\\develop");
File[] files = file.listFiles();
for (File fileName : files) {
System.out.println(fileName);
}
}
/*
listFiles()方法源码:
public File[] listFiles() {
String[] ss = list();
if (ss == null) return null;
int n = ss.length;
File[] fs = new File[n];
for (int i = 0; i < n; i++) {
fs[i] = new File(ss[i], this);
}
return fs;
}
*/
}