文件过滤器
文件过滤器是个接口
过滤器一:File[] listFiles(FileFilter filter)
public static void fun1() {
File file = new File("/Users/lanou/Desktop/level");
File[] listFiles = file.listFiles(new MyFilter());
for (File file2 : listFiles) {
System.out.println(file2.getName());
}
}
class MyFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return false;
}
return true;
}
}
class MyFilterTXT implements FileFilter{
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return true;
}
return pathname.getName().endsWith("txt");
}
}
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFilterTXT());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
} else {
System.out.println(subFile.getName());
}
}
}
public static void main(String[] args) {
File file = new File("/Users/lanou/Desktop/level");
getTXTFile(file);
}
过滤器二:File[] listFiles(FilenameFilter filter)
class MyFileNameFilter implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
System.out.println(file);
return false;
}
}
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFileNameFilter());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
} else {
System.out.println(subFile.getName());
}
}
}
class MyFileNameFilterLength implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
if (file.isHidden()) {
return false;
}
if (file.isDirectory()) {
return true;
}
return file.length() < 200 *1024;
}
}
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFileNameFilterLength());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
} else {
System.out.println(subFile.getName());
}
}
}
public static void main(String[] args) {
File file = new File("/Users/lanou/Desktop/level");
getTXTFile(file);
}