java文件的使用2

目录的删除

方法

boolean delete()

与删除文件是同一个方法,如果File表示的是目录也可以被删除

删除目录时要求该目录必须是一个空目录,否则删除失败

package file;

import java.io.File;

/**
 * 删除目录
 */
public class DeleteDirDemo {
    public static void main(String[] args) {
        //将当前项目目录下的demo目录删除
        //File dir = new File("./demo");
        File dir = new File("./a");//删除失败,因为a不是一个空目录
        if(dir.exists()){
            dir.delete();
            System.out.println("该目录已删除");
        }else{
            System.out.println("该目录不存在");
        }
    }
}

访问目录内容

访问一个目录中的所有子项

方法

FIle[] listFiles()

获取当前File对象表示的目录中的所有子项。返回的数组中每个FIle对象表示该目录中的一个子项。

相关方法

boolean isFile()

判断当前File对象表达的是否为一个真实存在的文件

boolean isDirectory()

判断当前File对象表达的是否为一个真实存在的目录

package file;

import java.io.File;

/**
 * 获取一个目录中的所有子项
 */
public class ListFilesDemo {
    public static void main(String[] args) {
        //将当前目录中的所有子项列出
        //1创建File对象表示当前目录
        File dir = new File(".");
        if(dir.isDirectory()) {//存在且确实为一个目录
            //2列出该目录中的所有子项
            File[] subs = dir.listFiles();
            System.out.println("一共有"+subs.length+"个子项");
            //遍历数组,获取每一个子项
            for(File sub : subs){
                String name = sub.getName();//获取该File对象表示的文件或目录的名字
                System.out.println(name);
            }
        }
    }
}

练习

定义一个过滤器,获取当前目录下子项名字中含有字母"a"的所有子项

package file;

import java.io.File;
import java.io.FileFilter;

/**
 * 定义一个过滤器,获取当前目录下子项名字中含有字母"a"的所有子项
 *
 * indexOf("a")是否>=0,因为当字符串不含有"a"时indexOf返回值为-1
 *
 * String提供了直接判断是否包含指定内容的方法
 * boolean contains(String str)
 * 当前字符串包含参数str表示的字符串内容时则返回true
 */
public class Test3 {
    public static void main(String[] args) {
        File dir = new File(".");
        if(dir.isDirectory()){
//            FileFilter filter = new FileFilter() {
//                public boolean accept(File f) {
//                    return f.getName().contains("a");
//                }
//            };
//            File[] subs = dir.listFiles(filter);
            /*
                FileFilter接口只有一个抽象方法
                因此可以使用lambda表达式创建
             */
            File[] subs = dir.listFiles(f->f.getName().contains("a"));
            for(File sub : subs){
                System.out.println(sub.getName());
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值