- Java的IO通过java.io包下的类和接口来支持
- 输入、输出两种IO流又可分为字节流和字符流两大类
- Java的IO流使用了一种装饰器设计模式,将IO流分成底层节点流和上层处理流。
- Java 7 在java.nio及其子包下提供了全新的API,称为NIO 2
1、File类 :使用文件路径字符串来创建File实例 (相对路径或绝对路径)
- 文件名相关的方法:获得File对象的文件名、路径名、绝对路径、父目录、重命名本目录等
- 文件检测相关的方法:判断File对象对应的文件/目录是否存在、是否可读写、是文件or目录、是否为绝对路径等
- 文件信息相关的方法:返回文件最后修改时间、文件内容长度
- 文件操作相关的方法:创建、删除文件、创建临时文件等
- 目录操作相关的方法:创建目录、列出子文件名和路径名、列出系统所有根路径等
Windows路径为“\”,与转义符相同,需要用“\”表示,也可直接用“/”,Linux下为“/”
2、文件过滤器
File类的list()方法可接收一个FilenameFilter参数,通过该参数可以只列出符合条件的文件
FilenameFilter接口包含了一个accept(File dir, String name)方法,该方法将依次对指定File的子目录或文件进行迭代,返回true或false
FilenameFilter接口内只有一个抽象方法accpet(),因此该接口也是一个函数式接口,可使用Lambda表达式创建实现该接口的对象
public class FilenameFilterTest
{
public static void main(String[] args)
{
File file = new File(".");
String [] nameList = file.list((dir, name) -> name.endWith(".java") || new File(name).isDirectory());
for(String name : nameList)
{
System.out.println(name);//将输出所有.java结尾的文件及文件夹
}
}
}