• I/O流的相关知识


    1.I/O流:输出(output):从程序向外输出数据,输入(input):从外面向程序拿数据
    2.java中把文件或者目录(文件夹)都封装成File(目录、文件、路径)对象
    3.与系统有关的路径分隔符:File.pathSeparator(;);window上的;就是;但是在linux上的;是:所以需要直接写.pathSeparator()方法来定义分隔符'
    4.与系统有关的名称分隔符:File.separetor();window上的就是但是在linux操作系统上的是/所以用.separetor()方法代替避免linux运行出错
    5.把文件或者文件夹封装成一个File对象:
    把f盘的a.txt文件转成file对象:File file=new File(F:\demo0611\a.txt);
    把父目录和子目录都封装成单独的对象,这样可以灵活调用:File file=new File("F:\demo0611","a.txt")根据自己需求可以灵活换取父目录和子目录
    把父目录封装成一个file对象,再加上子目录;File file=new File(new File(F:\demo0611),"a.txt")
    获取file对象的绝对路径:String abpath=file.getAbsolutepath() file方法不能判断对象是否存在,如果是相对路径就会自动拼接当前路径,如果是绝对路径那么就是绝对路径
    获取文件名:String filename=file.getName(); 获取路径:String filepath=file.getpath(); 获取文件大小:file.length()
    创建文件对象:1.先把要创建的文件的地址封装成一个file对象,在用file对象调用createnewfile()创建文件/
    可创建:.txt.jpg.zip文件.createnewfile()方法创建的文件如果该文件已存在就不能再创建
    File file=new File("F:\demo0611\a.txt"); file.createnewfile();创建文件
    File文件不能判断文件是否存在(主要是获取文件路径)但是可以通过.exists()方法来判断文件是否存在;返回值是布尔型:存在是true;不存在是false
    删除文件或者文件夹(删除文件夹就是在封装file地址对象时不加文件扩展名)file.delete()就是封装的file对象调用delete()方法来删除对象
    创建文件夹一般用.mkdirs()方法来创建,这个可创建一个文件夹也可创建多级文件夹
    File file=new File("f:\demo0611\a\b\c\d"); file.mkdirs()
    判断是否是文件:file.isDirectory(); 判断是否是文件夹:file.isFile();
    获取一级目录下的文件的文件名: File file=new File("F://demo0611")获取demo0611文件夹下所有的文件名:
    String[] files=file.list();增强for遍历:for(String s:files){sysout.out.println(s)};这个遍历只能获取一级目录下的所有文件名,可操作性差
    获取当前目录下的所有文件和文件夹的地址集合File[]: File[] files2=file.listFile()
    通过增强for获取文件的地址然后通过各种方法获取文件名,文件大小,文件地址'
    for(File f:files2){ 获取地址:systen.out.println(f);获取文件名:system.out.println(f.getName()); 获取文件大小:system.out.println(f.length())s
    2.递归:自己调用自己(异常:内存溢出);写递归必须要有出口不然没有意义,会报异常.构造方法不能用递归;递归次数不能过多不然报内存溢出异常
    3.遍历多级文件夹:public static void get(File file){ 这里是循环打印,先打印父类名再打印子类名;因为是自己调用自己所以循环打印
    获取改目录下的文件和文件夹的地址封装成一个File数组;File[] files=file.listFiles();在这里的括号里面可以加过滤器进行过滤,拿到自己想要的文件
    //遍历:for(File f:file){if(f.isDirectory()(这里是判断如果是文件夹就继续掉用get(f)方法自己调用自己;.isDirectory()是判断是否文件夹的方法){get(f)else{system.out.println(f)(如果不是文件夹就输出打印)}}}
    4.因为需要对传递过来的File对象进行过滤判断然后才能封装到File[]数组中;那么我们就需要用到FileFilter接口实现;因为FileFilter接口没有可实现的子类就不能多态‘ 所以就需要自己写一个实现类重写accept方法进行过滤
    public boolean accept(File pathname){if(pathname.isdirectory()){return true(过滤条件:如果是文件夹就直接返回,不然就不能遍历到二级文件夹里面的符合条件的文件了)}}
    先获取文件名 String name=pathname.geiName();将文件名转小写:name=name.tolowercase();返回判断后的布尔值 return name.endswith(".java");如果文件名是.java返回值是true不是就是false

  • 相关阅读:
    在线预览Office文档
    花生壳内网穿透
    Net core跨域
    EF链表查询
    Python冒泡排序、选择排序、插入排序、希尔排序、归并排序
    竟然可以这样学python!
    如何使用python打印9乘9乘法口诀表?
    python爬取小视频
    —用python写PDF转换器
    从0到1搭建个人博客-Django(三)
  • 原文地址:https://www.cnblogs.com/hankai2735/p/11438790.html
Copyright © 2020-2023  润新知