java基础IO—File文件操作类

1.理解文件

  • 文件是相关记录或者放在一起的数据的集合
  • 文件可以理解为,在外设硬盘上面保存数据的一种方式
  • 文件由两部分组成:属性(文件大小,文件名,文件类型)+内容(文件里面存放的东西)
  • OI:就是学对于文件属性和内容进行操作,而实际写入或者读取的过程我们称之为IO

2.File文件操作类

  • File:文件类
  • Files:文件操作的工具类
2.1绝对路径和相对路径
  • 绝对路径:指目录下的绝对位置,直接到达目标的位置,通常是从盘符开始的路径。完整的描述文件位置的路径就是绝对路径。
  • 相对路径:相对于某个基准目录的路径。使用相对路径可以为我们带来便利。
    我们可以使用相对路径来创建文件;
Feile file = new File("a.txt");//相对路径
File.createNewFile();
2.2 Feil类常用方法——基本文件操作

在这里插入图片描述
练习:

public void t1() {
        //文件相对路径和绝对路径?
        //绝对路径:全路径
        //相对路径:./(是当前目录),../(是上一级目录)
        //和绝对路径相比较,项目中尽量写相对路径,但最好是ClassLoader
        //java项目在IDEA中的编译路径?
        File file = new File("E:\\workspcae\\javaweb\\IO-study\\data\\测试名字");//全路径
        System.out.println(file.exists());//判断文件是否存在
        File file2 = new File("../data/测试名字");//相对路径
        System.out.println(file2.exists());//根据上一级目录找不到


        //怎么查看当前Java代码的路径,查找相对路径较好的方式
        //file类写相对路径不建议在真是的项目中使用,最好是ClassLoader
        File file3 = new File("data/测试名字");
        System.out.println(file3.getAbsolutePath());//得到绝对路径
        System.out.println(file3.exists());//判断文件是否存在
        System.out.println(file3.getPath());//得到路径
        System.out.println(file3.lastModified());//上次修改时间
        System.out.println(file3.list());//打印当前路径的
        System.out.println(file3.isDirectory());//判断是否是目录
        System.out.println(file3.isFile());//判断是否是文件
    }
2.3 目录操作和文件属性操作

在这里插入图片描述
在这里插入图片描述

2.4File类的其他操作

在这里插入图片描述
listFiles():返回目录下一级的子文件/子文件数组。

public void t2() {
        File file5 = new File("E:\\workspcae\\javaweb");
        File[] childen = file5.listFiles();//返回目录下一级的子文件/子文件数组,String类型
        for (File child : childen) {
            System.out.println(child.getName());//文件夹名
        }
    }

2.5综合案例——递归打印文件目录列表

虽然File提供有listFile方法,但是这个方法本身只能够列出本目录中的第一级信息。如果要求列出本目录中所有级的信息。就必须自己处理,通过递归的模式来完成。

 //递归方法获取目录下所有子文件和子文件夹
    public static List<File> list(File f) {
        List<File> files = new ArrayList<>();
        if (f.isFile()) {//如果当前f对象是一个文件,那么就加到列表中去
            files.add(f);
        } else {
            //如果不是文件,那么找下一级子文件或者子文件夹
            File[] childer = f.listFiles();
            for (File child :childer) {
                //如果child还有下一级文件,那么就递归调用此list方法
                List<File> subs = list(child);//sub相当于一层的文件数
                files.addAll(subs);//再将sub全部加入到整个的list中去
            }
        }
        return files;

    }
 @Test
    public void t3() {
        File file5 = new File("E:\\workspcae\\javaweb");
        List<File>  childen = list(file5);//返回目录下一级的子文件/子文件数组,String类型
        for (File child : childen) {
            System.out.println(child.getName());//文件夹名
        }
    }

结果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值