[知了堂学习笔记]_IO流之File类的应用

本文介绍了Java中File类的基本使用方法,包括创建目录、创建文件、删除目录、获取一级目录、获取文件大小、获取文件路径等操作,并通过示例展示了如何使用递归方法输出目录及其内容。

案例:

创建目录
先要创建File类对象
调用mkdirs
测试是否创建好目录—-利用JUnit来测试

/*
     * 创建目录
     */
    @Test
    public void m01(){
        File file = new File("D:\\File\\Music");
        file.mkdirs();
    }

创建文件
先要创建File类对象
调用creatNewFile

/*
     * 创建文件
     */
    @Test
    public void m02() throws IOException{
        File directory = new File("D:\\File\\Music");
        File file = new File(directory,"测试.docx");
        if(!directory.exists()){
            directory.mkdirs();
        }
        file.createNewFile();
    }

删除目录

/*
     * 删除目录
     * 先判断目录下是否有文件----如果有文件,目录删除不了
     */
    @Test
    public void m03(){
        File directory = new File("D:\\File\\Music");
        if(!directory.exists()){
            return;//目录不存在则终止方法
        }
        File[] files = directory.listFiles();//返回music目录下的文件
        if(files.length>0){
            for(File file : files){
                if(file.isFile()){
                    file.delete();//删除文件
                }
            }
        }
        directory.delete();
    }

获取一级目录

/*
     * 获取一级目录
     *
     */
    @Test
    public void m04(){
        File directory = new File("D:\\学习视频\\jQuery\\jQuery\\2016-3-14 jQuery入门");
        File[] files = directory.listFiles();
        for(File file : files){
            System.out.println(file.getName());
        }
    }

获取文件大小

/*
     * 获取文件大小
     */
    @Test
    public void m05(){
        File file = new File("D:\\学习视频\\课堂讲义.docx");
        if(file.isFile()){
            System.out.println(file.length());//输出文件的字节大小
        }
    }

获取文件路径

    /*
     * 获取文件路径
     */
    @Test
    public void m06(){
        File file = new File("D:\\File\\Test");
        String path = file.getPath();
        System.out.println("path:"+path);
        String absolutePath = file.getAbsolutePath();
        System.out.println("absolutePath:"+absolutePath);
        File fpath = file.getAbsoluteFile();
        System.out.println("fpath:"+fpath);
    }

递归:

/*
     * 递归:1+2+...+100
     */
    @Test
    public void m07(){
        int count = add(0,100);
        System.out.println("count:"+count);
    }
    public int add(int sum,int n){
        sum += n;
        n--;
        if(n == 0){
            return sum;
        }else{
            return add(sum,n);
        }   
    }

利用递归去完成把一个目录进行输出(文件、目录)

/*
     * 利用递归去完成把一个目录进行输出(文件、目录)
     */
    @Test
    public void m08(){
        showDirectory(new File("D:\\学习视频"));
    }
    public void showDirectory(File file){
        File[] files = file.listFiles();
        if(files.length == 0){
            return;//终止方法
        }
        for(File tmp : files){          
            if(tmp.isFile()){
                System.out.println("文件:"+tmp.getName());
            }else if(tmp.isDirectory()){
                System.out.println("目录:"+tmp.getName());
                showDirectory(tmp);
            }
        }
    }

计算一个目录的大小

/*
     * 计算一个目录的大小
     */
    @Test
    public void m09(){
        showDirectorySize(new File("D:\\学习视频"));
        System.out.println("size:"+size);
    }
    private long size = 0;//初始化一个目录的大小
    public void showDirectorySize(File file){
        if(file == null){//判断要遍历的目录是否为null
            return;
        }
        File[] files = file.listFiles();
        if(files.length == 0 || files == null){//判断子目录是否为null或者没有文件存在
            return;
        }
        for(File tmp : files){
            if(tmp.isFile()){
                System.out.println("文件:"+tmp.getName());
                size += tmp.length();
            }else if(tmp.isDirectory()){
                System.out.println("目录:"+tmp.getName());
                showDirectorySize(tmp);
            }
        }
    }

请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值