遍历目录
通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表。
File 类的 list() 方法提供了遍历目录功能,该方法有如下两种重载形式。
提示
:list() 方法返回的数组中仅包含文件名称,而不包含路径。但不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。public class readbyte {
public static void main(String[] args) {
File folder = new File("./target");
String fileList[] = folder.list();
for (int i = 0; i < fileList.length; i++) { // 遍历返回的字符数组
System.out.println(fileList[i]);
}
}
输出
listFiles()方法是File类的一部分。如果路径名是目录,则该函数返回一个File数组,表示给定抽象路径名中的文件,否则返回null。该函数是重载函数。其中一个函数没有任何参数,第二个函数将FilenameFilter对象作为参数,第三个函数将FileFilter对象作为参数
函数签名:
public File[] listFiles()
public File[] listFiles(FilenameFilter f)
public File[] listFiles(FileFilter f)
函数语法:
file.listFiles()
file.listFiles(filter)
参数:该函数是重载函数
该函数之一没有任何参数,
第二个函数将FilenameFilter对象作为参数,
第三个函数将FileFilter对象作为参数
返回值:该函数返回一个File数组,如果文件对象是一个文件,则返回null值。
异常:如果不允许该函数对该文件进行读取访问,则此方法将引发Security Exception
下面的程序将说明listFiles()函数的用法
import java.io.File;
public class readbyte {
static String dirpath = "./test.txt";
public static void main(String[] args) {
File folder = new File("./target");
File[] listOfFiles = folder.listFiles();
// Display the names of the files
for (File f : listOfFiles) {
String fileName = f.getName();
System.out.println(fileName);
}
//这种方法也可以
for (int i = 0; i < listOfFiles.length; i++) {
System.out.println(listOfFiles[i].getName());
}
}
}
String getName()
返回表示当前对象的文件名或路径名(如果是路径,则返回最后一级子路径名)
输出
import java.io.File;
import java.io.FilenameFilter;
public class readbyte {
public static void main(String[] args) {
File folder = new File("./target");
// Create a FilenameFilter
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File f, String name)
{
return name.startsWith("(0,5)");
}
};
File[] listOfFiles = folder.listFiles(filter);
System.out.println("Files are:");
// Display the names of the files
for (File f : listOfFiles) {
String fileName = f.getName();
System.out.println(fileName);
}
}
}
输出
import java.io.File;
import java.io.FileFilter;
public class readbyte {
public static void main(String[] args) {
File folder = new File("./target");
// Create a FileFilter
FileFilter filter = new FileFilter() {
public boolean accept(File f)
{
return f.getName().endsWith("txt");
}
};
// Get all the names of the files present
// in the given directory
// which are text files
File[] listOfFiles = folder.listFiles(filter);
System.out.println("Files are:");
// Display the names of the files
for (File f : listOfFiles) {
String fileName = f.getName();
System.out.println(fileName);
}
}
}
输出