JAVA中的Stream流和File类
- Stream流
- 获取方法
- 中间方法
- 终结方法
- 收集方法
- File类
- 常用构造方法:
- 创建方法
- 删除方法
- 判断方法
- 获取方法
- listFiles()方法
Stream流
就是一个Stream类, 使用这个类可以很方便的处理集合和数组
优点
- 简化代码的开发
注意事项:
- JDK8版本才能使用Stream类
获取方法
获取一个stream类的对象
单列集合
使用默认方法stream()生成流
双列集合
不能直接使用必须先转换成单列集合
数组
通过Arrays中的静态方法stream()生成流
可变参数
通过Stream接口的静态方法of()生成流
中间方法
执行完一个方法后, Stream流还可以继续执行其他操作
常用方法:
- filter(): 对流中的数据进行相应的过滤操作
如果是true则表示保存该元素, 若是false表示要过滤的元素 - map(): 类型转换
- sorted(): 排序
- limit(n): 将流中的前n个元素组成新的流并返回
- skip(n): 跳过前n个元素,将剩余的元素组成新的流并返回
- concat(Stream a, Stream b): 将a和b合并为一个流
- distionct(): 去除流中重复的元素(依赖的是 hashCode() 和 equals() 方法)
终结方法
调用stream类的方法之后, 如果这个方法的返回值的类型不是stream类型,那么该方法就是终结方法
常用方法:
- forEach(): 对调用该方法的流中的每个元素执行操作
- count(): 返回此流中元素的个数
注意事项:
- count()方法返回的是流中的元素的个数,不是集合中元素的个数
- 在Stream流中无法直接修改集合、数组等数据源中的数据
- 同一个stream对象只能调用一次方法
收集方法
使用Stream流的方式对数据操作完毕后, 可以把流中的数据收集到新的集合中
常用方法:
- collect(): 把结果收集到集合中
工具类Collectors提供了具体的收集方式:
- Collector toList(): 把元素收集到List集合中
- Collector toSet(): 把元素收集到Set集合中
- Collector toMap(): 把元素收集到Map集合中
File类
对硬盘上的文件/文件夹本身进行操作
绝对路径: 是一个完整的路径以盘符开始,确定之后就不会发生改变
相对路径: 相对于参照物的路径 参照物: 当前项目的存储路径
常用构造方法:
- file(“路径”): 通过给定的路径字符串转换为抽象路径名创建新的File
注意事项: 只使用new File()是不会自动将对应的文件或文件夹创建出来的,只有调用创建方法后才会进行创建
创建方法
- createNewFile(): 只能用于创建文件
- mkdirs(): 创建多级文件夹,也可以创建单级文件夹(只能创建文件夹)
注意事项:
- 使用createNewFile()方法创建文件,若指定的文件已存在则会创建失败否则会创建成功
删除方法
- delete(): 删除指定路径的文件或文件夹
注意事项: 若要删除文件夹必须保证该文件夹中没有任何文件才能进行删除(删除后的文件夹不会在回收站中保留)
判断方法
- isDirectory(): 判断是否为文件夹
- isFile(): 判断是否为文件
- exists(): 判断文件或文件夹是否存在
获取方法
- getName(): 获取该文件或文件夹的名称
- getAbsolutePath(): 获取该文件或文件夹的绝对路径
- listFile(): 获取指定文件夹中的所有文件或文件夹的File对象数组
注意事项:
- 文件夹不存在时、给定的路径为一个文件时、给定的路径需要权限才能进入时返回值均为null
- 可以查询出隐藏文件、文件夹
- 空文件夹返回的是一个长度为0的数组
listFiles()方法
获取该文件夹中所有的文件和文件夹的File对象(包括隐藏文件和文件夹)
代码格式