IO-File

概念

文件和目录路径名的抽象表示形式。

构造方法

在这里插入图片描述

		//构造方法1
        File dir = new File("F://Test");
        //构造方法2
        File file = new File(dir,"1.txt");
        file.createNewFile();
        //构造方法3
        File file1 = new File("F://Test","2.txt");
        file1.createNewFile();

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

createNewFile(创建文件)

使用方法:

//一参数构造方法
File file = new File("F://Test.txt");
        file.createNewFile();

注意:需要抛出异常,因为操作权限的原因可能会触发异常。

throws IOException

会返回一个布尔类型的返回值,true如果指定的文件不存在且已成功创建; false如果指定的文件已存在。

File file = new File("F://Test.txt");
        boolean flag = file.createNewFile();
        System.out.println(flag);

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

mkdir(创建文件夹)

File dir = new File("F://Test");
        dir.mkdir();

结果:再F盘下创建出来文件夹Test
在这里插入图片描述
注意:同样会有返回值true/false,true代表创建成功,false代表创建失败。也需要抛出异常。

File dir = new File("F://Test");
        boolean test = dir.mkdir();
        System.out.println(test);

如果需要创建多层目录需要使用midirs方法

File dir = new File("F://Test1/t/t/t");
        boolean test = dir.mkdirs();
        System.out.println(test);

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

delete(删除)

在这里插入图片描述

        File file1 = new File("F://Test","2.txt");
        //删除
        file.delete();

结果:1.txt被删除
在这里插入图片描述

getAbsolutePath(获取文件路径)

File dir = new File("F://Test");
        System.out.println(dir.getAbsolutePath());

结果:获得对象绝对路径字符串
在这里插入图片描述

getPath

System.out.println(dir.getPath());

注意:返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果一样
在这里插入图片描述

getName(获取文件名称)

File dir = new File("F://Test");
        System.out.println(dir.getName());

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

getParent(获取父文件夹地址)

概念:
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

File dir = new File("F://Test//Test2");
        System.out.println(dir.getParent());

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

getParentFile(返回父对象)

File dir = new File("F://Test//Test2");
        File test = dir.getParentFile();

在这里插入图片描述
注意:getParent返回的是String类型,getParentFile返回的是File类型。

length(文件大小为几字节)

File dir = new File("F://Test");
        System.out.println(dir.length());

结果:返回对象文件大小(字节)

exists(判断文件是否存在)

File dir = new File("F://Test");
        System.out.println(dir.exists());

结果:存在返回true,不存在返回false

renameTo(文件换位置换名字)

在这里插入图片描述

		//原文件的位置
		File dir = new File("F://Test");
		//要转移的位置和名字
        File dir2 = new File("F://Test2");
        dir.renameTo(dir2);

在这里插入图片描述

listFile(获取文件夹中所有文件)

File dir = new File("F://Test");
        dir.listFiles();

例如一个文件夹中有20个文件和10个文件夹,调用该方法就会返回一个长度为30的File数组。

list(返回某个目录下的所有文件和目录的文件名)

File dir = new File("F:\\Test1");
        for (String s: dir.list()) {
            System.out.println(s);
        }

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

路径分隔符

不同系统分隔符不一样,Java提供了统一的分隔符字段
在这里插入图片描述

文件遍历案例

import java.io.File;
import java.io.IOException;

public class FileTest {
    public static void main(String[] args) throws IOException {

        File file = new File("f:");
        File[] files = file.listFiles();
        find(files);

    }

    public static void find(File[] files) {
        if (files != null && files.length > 0) {
            for (File file:files) {
                if (file.isFile()){
                    if (file.getName().endsWith(".jpg")){
                        System.out.println("找到jpg文件:"+file.getAbsolutePath());
                    }
                }else {
                    File[] test = file.listFiles();
                    find(test);
                }
            }
        }
    }
}

注意:files != null && files.length > 0的files !=null不能删掉,因为如果files为空,调用length会出现空指针异常。

		files = null;
        int a = files.length;

在这里插入图片描述

FileFilter过滤器

方法1

AVI test = new AVI();
		//接收的文件在过滤器中筛选
        File[] files = file.listFiles(test);
//需要继承FileFilter
static class AVI implements FileFilter {

        @Override
        public boolean accept(File pathname) {
        	//限制条件
            if (pathname.getName().endsWith(".mp4"))
            	//true表示可以进数组,文件符合要求
                return true;
                //不符合要求的文件
            return false;
        }
    }

方法2

File file = new File("f:");
        FileFilter test = new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if (pathname.getName().endsWith(".avi"))
                    return true;
                return false;
            }
        };
        File[] files = file.listFiles(test);

方法3

File file = new File("f:");
        
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if (pathname.getName().endsWith(".avi"))
                    return true;
                return false;
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值