IO

IO流:
File类:
       描述程序当中操作的文件和目录
D:\aaa\bbb.txt;F:\\bbb\ccc.txt
jdk;tomcat;mysql
D:\\develop\\Java\\jdk1.8.0_191
D:/develop/Java/jdk1.8.0_191
属性:
1. static String pathSeparator 路径分隔符 等价于在字符串书写的;/:
2. static String separator 目录分隔符 等价于在字符串书写的\\效果
备注:
分隔符:
1.如果使用的是反斜杠,那么需要使用两个"\\"来进行目录区分
如果使用的是正斜杠,那么只需要使用一个"/"即可连接
2. 对于不同的操作系统,路径分隔符一般不一样,Windows系统当中使用的是;作为分割,Linux系统当中使用的是:作为分割
构造方法:
1. File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
2. File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例。
3. File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。
路径:
相对路径: 相对于它所在的项目路径
绝对路径: 以盘符(根目录)为开头的路径为绝对路径
项目的根路径:文件直接放到项目目录下
File类的常用API方法
   1. getAbsolutePath() 获取file对象的绝对路径
2. getName() 获取file对象的文件名称或者是目录名称
    3. getParent() 获取file文件的父路径 不包含文件本身的一个路径
    4. length() 获取文件的大小
     5. getPath() 返回值是变化的
     6. boolean isFile() 测试此抽象路径名表示的文件是否为普通文件。
     7. exists() 判断该文件在硬盘当中是否存在
    8. boolean isDirectory() 判断该file实例是不是一个目录
     9. boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
     10. boolean mkdir() 创建由此抽象路径名命名的目录。
     11. boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
     12. boolean delete() 删除由此抽象路径名表示的文件或目录
    13. String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    14. File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
    15. File[] listFiles(FileFiler filer) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
备注:
    1.getPath()方法 如果程序获取该文件是通过绝对路径获取的,那么该方法的返回值是一个绝对路径
如果程序获取该文件是通过相对路径获取的,那么该方法的返回值就是一个相对路径
    2.File类当中的方法 只能识别project工程类型 不能直接识别module工程类型
    3.createNewFile() 要求创建文件的路径在硬盘当中是真实存在的(不能出现空目录),否则就会抛出一个异常
java.io.IOException: 系统找不到指定的路径。
    4. delete() 它可以删除文件或者文件夹,当删除文件夹时,必须保证该文件夹下没有任何的文件或者子文件夹,否则删除失败
     5. listFiles(FileFilter filter) 这个方法需要添加一个过滤器,里面重写accept(File file)方法
该方法只能对单层子文件夹中的文件或者目录进行过滤
accept(File file)它的返回值是一个boolean值,如果返回值为false,代表该文件不允许存入到File数组当中
如果该方法的返回值为true,代表该文件需要放入到File数组当中
递归: 方法递归:
方法递归两种方式:
     直接递归:方法内部直接调用自己本身
     间接递归:方法内部不是直接调用自己,但是通过其他方法还可以再次调用到该方法,形成一个闭环
     出口---->边界条件--->让当前正在执行的递归方法停止
注意事项:
     1. 递归必须有边界值:
      2. 使用递归次数不能过多,一般都是较少的次数
     3. 构造方法不能使用递归
文件过滤器   Filter--->过滤器
       FileFilter
      listFiles() ---File[]可以获取一个文件类数组
      list(FileFilter filter) --->File[]
      在FileFilter类当中的accept()方法
      是用来添加满足条件的文件,如果accept方法的返回值是true,代表该文件(File实例)是允许存入到File数组当中的
      如果accept方法的返回值为false,就代表该文件是不允许放入到File数组当中的
      Arrays.deepToString()
FileOutputStream类 
       --->文件字节输出流 用于把程序当中的数据写入到磁盘的某个文件中
posted @ 2022-08-18 19:27  格蕾修  阅读(111)  评论(0)    收藏  举报