📄 filefilterstreamdemo.java
字号:
package chapter10;
import java.io.File;
import java.io.FilenameFilter;
import java.io.FileFilter;
import java.io.IOException;
class Filter1 implements FilenameFilter {
String extent;
Filter1(String extent) {
this.extent = extent;
}
public boolean accept(File dir, String name) {
int index = name.lastIndexOf("."); //文件的扩展名匹配
if (index == -1) {
return false;
} else if (index == name.length() - 1) {
return false;
} else {
return this.extent.equals(name.substring(index + 1));
}
}
}
class Filter2 implements FileFilter {
String extent;
Filter2(String extent) {
this.extent = extent;
}
public boolean accept(File f) {
if (f.isDirectory()) {
return false;
}
String name = f.getName();
int index = name.lastIndexOf(".");
if (index == -1) {
return false;
} else if (index == name.length() - 1) {
return false;
} else {
return this.extent.equals(name.substring(index + 1));
}
}
}
public class FileFilterStreamDemo {
public static void main(String[] args) {
File f = new File("C://");
File f1 = new File("C://test.txt");
File f2 = new File("C://test.htm");
File f3 = new File("C://testdir.txt");
Filter1 filter1 = new Filter1("txt");
Filter2 filter2 = new Filter2("txt");
try {
if (!f1.exists()) {
f1.createNewFile(); //指定目录下没有该文件则创建文件
}
if (!f2.exists()) {
f2.createNewFile(); //指定目录下没有该文件则创建文件
}
if (!f3.exists()) {
f3.mkdir(); //指定目录下没有该子目录则创建子目录
}
} catch (IOException e) {
e.printStackTrace();
}
boolean b1 = filter1.accept(f, "test.txt");
boolean b2 = filter1.accept(f, "test.htm");
boolean b3 = filter1.accept(f, "testdir.txt");
System.out.println(f1.getName() + "扩展名是否为txt:" + String.valueOf(b1));
System.out.println(f2.getName() + "扩展名是否为txt:" + String.valueOf(b2));
System.out.println(f3.getName() + "扩展名是否为txt:" + String.valueOf(b3));
boolean bb1 = filter2.accept(f1);
boolean bb2 = filter2.accept(f2);
boolean bb3 = filter2.accept(f3);
System.out.println(f1.getName() + "扩展名是否为txt而且是文件:"
+ String.valueOf(bb1));
System.out.println(f2.getName() + "扩展名是否为txt而且是文件:"
+ String.valueOf(bb2));
System.out.println(f3.getName() + "扩展名是否为txt而且是文件:"
+ String.valueOf(bb3));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -