java文件操作类常用Api

java文件操作类常用Api

File类

File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)

使用File可以做到:

  • 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
  • 2:创建和删除文件或目录
  • 3:访问一个目录中的子项

但是File不能访问文件数据.

file提供了一些方法来进行相关的操作
  • 创建File时要指定路径,而路径通常使用相对路径。
    相对路径的好处在于有良好的跨平台性。
    "./“是相对路径中使用最多的,表示"当前目录”,而当前目录是哪里
    取决于程序运行环境而定,在idea中运行java程序时,这里指定的
    当前目录就是当前程序所在的项目目录。

    File file = new File("./ceshi.txt");
    
  • 获取文件名字:file.getName()

     //获取名字
    String name = file.getName();
    
  • 获取文件大小:file.length();接収的为long类型

     //获取文件大小(单位是字节)
    long len = file.length();
    
  • 检测是否可读/可写:file.canRead();/file.canWrite();

    //是否可读可写
    boolean cr = file.canRead();
    boolean cw = file.canWrite();
    System.out.println("是否可读:"+cr);
    System.out.println("是否可写:"+cw);
    
  • 检测是否为隐藏文件:file.isHidden();

    boolean ih = file.isHidden();
    System.out.println("是否隐藏:"+ih);
    
  • 创建新文件,如果指定的文件所在的目录不存在会抛出异常:createNewFile()

    public class FileDemo {
        public static void main(String[] args) throws IOException {
            //创建新文件(在当前而目录下)
            File file = new File("./test.txt");
            //boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录
            if (file.exists()){
                System.out.println("该文件已存在");
            }else{
                file.createNewFile();
            }
        }
    }
    
  • 删除文件:delete()

    //删除文件
            File file = new File("./text.txt");
            if (file.exists()){
                file.delete();
                System.out.println("文件已删除");
            }else{
                System.out.println("文件不存在");
            }
    
  • 判断File表示的文件或目录是否真实存在。true:存在 false:不存在:exists()

    //boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录
    		if (f.exists()){
                System.out.println("该文件已存在");
            }else{
                f.createNewFile();
            }
    
  • 判断当前File表示的是否为一个文件:isFile()

  • 创建当前File表示的目录:mkDir()

    创建当前File表示的目录,同时将所有不存在的父目录一同创建:mkDirs()

     //创建目录		mkdir()创建时只能创建上面存在的目录,若创建多层目录则推荐使用mkdirs()
    		File dir = new File("./demo");
            if (dir.exists()){
                System.out.println("目录已存在");
            }else{
                dir.mkdir();
                System.out.println("该目录已创建");
            }
    
    		File dir = new File("./a/b/c");
            if (dir.exists()){
                System.out.println("目录已存在");
            }else{
                dir.mkdirs();
                System.out.println("该目录已创建");
            }
    
  • 删除目录,如果目录不是空的则删除失败。:delete()

    //将当前目录下的demo目录删除
            File dir = new File("demo");
            if(dir.exists()){
                dir.delete();//delete方法删除目录时只能删除空目录
                System.out.println("目录已删除!");
            }else{
                System.out.println("目录不存在!");
            }
    
  • 访问目录中所有的子项:listFiles

    // boolean isFile() 判断当前File表示的是否为一个文件
    
    
  • 判断当前File表示的是否为一个目录:isDirectory()

            File dir = new File(".");//当前目录
            if (dir.isDirectory()){//判断是否为目录
                File[] subs = dir.listFiles();//将子项装进集合
                System.out.println("一共有"+subs.length+"个子项");//输出有几个子项
                for (int i = 0; i < subs.length; i++) {//遍历该目录下的子项
                    File sub = subs[i];
                    System.out.println(sub.getName());//将子项的名字惊醒输出
                }
            }
    
  • 获取File表示的目录中满足filter过滤器要求的所有子项:listFiles(FileFilter filter)

      //有条件的获取一个目录中的子项,重载的listFiles方法:File[] listFiles(FileFilter) 该方法要求传入一个文件过滤器,并仅将满足该过滤器要求的子项返回。
            FileFilter filter =new FileFilter() {//因为只使用一次,所以建议使用匿名内部类
                @Override
                public boolean accept(File file) {
                    String name = file.getName();
                    return name.contains("a");//返回目录中包含a的目录
                }
            };//Filter:过滤器  accept:接受
            File dir = new File("./基础语法/src/com");
            if (dir.isDirectory()){
                File[] subs = dir.listFiles(filter);
                System.out.println("一共有"+subs.length+"个子项");
                for (int i = 0; i < subs.length; i++) {
                    File sub = subs[i];
                    System.out.println(sub.getName());
                }
            }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值