File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)
使用File可以做到:
- 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
- 2:创建和删除文件或目录
- 3:访问一个目录中的子项
但是File不能访问文件数据.
创建File时要指定路径,而路径通常使用相对路径。
相对路径的好处在于有良好的跨平台性。
"./"是相对路径中使用最多的,表示"当前目录",而当前目录是哪里
取决于程序运行环境而定,在idea中运行java程序时,这里指定的
当前目录就是当前程序所在的项目目录。
相对路径中"./"可以忽略不写,默认就是从当前目录开始的。
File[] listFiles(FileFilter filter) 该方法会将该目录中每一个子项都作为参数先传给filter的accept方法, 只有accept方法返回为true的子项最终才会被包含在返回的File[]数组 中进行返回。
//获取当前目录中名字里含有字母"o"的子项 File dir = new File("."); if(dir.isDirectory()){ /* File listFiles(FileFilter filter) */ FileFilter filter = new FileFilter() { public boolean accept(File file) { System.out.println("正在过滤:"+file.getName()); return file.getName().contains("o"); } };
JDK8之后java支持了lambda表达式这个特性
* lambda表达式可以用更精简的语法创建匿名内部类,但是实现的接口只能有一个抽象
* 方法,否则无法使用。
* lambda表达式是编译器认可的,最终会被改为内部类形式编译到class文件中。
*
* 语法:
* (参数列表)->{
* 方法体
* }
具体参见day01