JAVA-I/O流-概念File类和过滤器
JAVA-I/O流-概念File类和过滤器
Java中通过java.io及其子包中的中的类和接口来支持IO,主要包括输入(Input)、输出(Output)两种流,每种流又分成字节流和字符流两种。
Java的IO流使用的是装饰器设计模式,因此IO流又分为与底层物理节点关联的节点流和上层用以处理的处理流。
- 流:java中吧不同的输入\输出源(文件、键盘、网络连接等)抽象为流(Stream)。
- 字节流:以字节为单位进行处理的流。
- 字符流:以字符为单位进行处理的流。
- 方向:在JVM所在内存的角度考虑输入输出的方向。
File类
File类仅仅是一个目录,能够进行一些增删操作,但是不能访问文件,访问文件需要输入/输出流。
1.成员方法
pathSeparator 返回与系统有关的路径的分隔符字符串
pathSeparatorChar 返回与系统有关的路径的分隔符字符串
separator 返回与系统有关的默认名称分隔符字符串
separatorChar 返回与系统有关的默认名称分隔符字符串
2.构造方法
// 根据parent 抽象路径名和chi1d路径名字符串创建一个新File实例。
File(File parent, String child)
// 通过将给定路径名字符串转换为抽象路径名来创建一个新File 实例。
File(String pathname)
// 根据parent 路径字符串和child路径字符串创建一个新File实例
File(String parent, String child)
*** 直接使用字符串创建最好,如果有了父路径可以省事用另外两种方法。 ***
3. 方法
- 文件名相关
String getName() // 返回最低级目录名称或文件名称
String getAbsolutePath () // 返回绝对路径
String getPath () // 返回路径名字符串(原样输出)
{
File file1 = new File("D:/io1227");
File file2 = new File(".", "a.txt");
file1.getName(); // io1227
file1.getAbsoluteFile(); // D:\io1227
file2.getPath(); // .\a.txt
}
long length() // 返回文件长度
boolean renameTo(File newName) // 更改文件或目录名
- 增删操作:返回值全部为boolean
createNewFile() // 创建新文件,文件不存在true,文件存在false
delete() // 删除文件或目录
exists() // 测试目录或文件是否存在
- 其他方法
boolean isDirectory() // 测试是否为目录
boolean isFile() // 测试是否为文件
boolean mkdir() // 创建目录(单级)
boolean mkdirs() // 创建目录(多级)
FileNameFilter文件过滤器
FileFilter是一个接口,需要创建一个能够实现接口中accept方法的类,使用匿名对象直接传参进list()中即可
// 使用过滤器筛选出文本文档
list():public static void guolv(){
File file = new File("D:/io1227");
String[] strArr = file.list(new GetTxt());
for (String s : strArr) {
System.out.println(s);
}
File[] fi = file.listFiles(new GetTxt());
for (File s : fi) {
System.out.println(s);
}
}
// 过滤器实现类
public class GetTxt implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith("txt");
}
}

浙公网安备 33010602011771号