File类

java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作

1. 构造方法

public File(String pathname): 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。

public File(String parent,String child): 从父路径名字符串和子路径名字符串创建新的 File实例。

public File(File parent,String child):从父抽象路径名和子路径名字符串创建新的 File实例。

public class Demo01 {
    public static void main(String[] args) throws IOException {
        //创建了一个File对象 , 构造方法中指定的是当前file对象对应的路径
        File file = new File("D:\SGUIGU\ownnote\Day5\Day18\a\hello");

        //判断file对象是否存在
        System.out.println(file.exists());

        //file.isDirectory() 判断file对象是否是一个文件夹
        //file对象如果不存在,或者不是文件夹,则创建文件夹 - mkDir()
        if(!file.exists() || !file.isDirectory()) {
            //创建对应的文件
            //file.createNewFile();
            //mk - make 创建,制作
            //dir - directory 目录、文件夹
            //file.mkdir();   //此处需要注意的是:如果文件名对应的文件已经存在,在win上创建文件夹会失败,并且没有任何异常
            file.mkdirs();  //如果父目录不存在,则先创建父目录,再创建子目录
        }

    }
}
//2.演示创建File的另外两个构造方法
public class Demo2{
    public static void main(String[] args) throws IOException {
        //第一个参数是父路径
        //第二个参数是File名称
        //File file = new File("D:\SGUIGU\ownnote\Day5\Day18\a","hello2.txt");

        File parentFile = new File("D:\\SGUIGU\\ownnote\\Day5\\Day18\\a");
        String fileName = "hell02.txt";
        File file = new File(parentFile , fileName);

        if(!file.exists()){
            file.createNewFile();
        }

    }
}

2. 常用方法

2.1 获取功能的方法

public String getName():返回由此File表示的文件或目录的名称。

public String getPath():将此File转换为路径名字符串。

public String getAbsolutePath():返回此File的绝对路径名字符串。

public File getAbsoluteFile():返回此File对应的绝对路径文件。

public String getParent():返回此File对应的父文件夹路径。

public File getParentFile():返回此File对应的父文件夹对象。

public long length():返回由此File表示的文件的大小,单位是字节。

public class Demo3 {
    public static void main(String[] args) {

        File file = new File("D:\\SGUIGU\\ownnote\\Day5\\Day18\\a","hello3.txt");

        //获取文件名
        System.out.println("file.getName() = " + file.getName()); //file.getName() = hello3.txt

        //获取绝对路径
        System.out.println("file.getAbsolutePath() = " + file.getAbsolutePath());
        //file.getAbsolutePath() = D:\SGUIGU\ownnote\Day5\Day18\a\hello3.txt

        //获取父路径
        System.out.println("file.getParent() = " + file.getParent());
        //file.getParent() = D:\SGUIGU\ownnote\Day5\Day18\a
        
        //获取文件的大小
        System.out.println("file.length() = " + file.length());  //file.length() = 0

        //last 最近、最后
        //modifie 修改
        //获取最近的一次修改时间,返回的是long类型
        Long lastModified = file.lastModified();
        Date date = new Date(lastModified);
        System.out.println("date = " + date);  

    }
}

2.2 判断相关方法

public boolean exists(): 此File表示的文件或目录是否实际存在。

public boolean isDirectory(): 此File表示的是否为目录

public boolean isFile(): 此File表示的是否为目录

public class Demo4 {
    public static void main(String[] args) {
        File file = new File("D:\\SGUIGU\\ownnote\\Day5\\Day18\\a","hello4.txt");

        //是否是可执行文件
        System.out.println("file.canExecute() = " + file.canExecute()); //x

        //是否可读
        System.out.println("file.canRead() = " + file.canRead());       //r

        //是否可写
        System.out.println("file.canWrite() = " + file.canWrite());     //w


        //是否是隐藏文件
        System.out.println("file.isHidden() = " + file.isHidden());//false

        //重命名
        file.renameTo(new File("D:\\SGUIGU\\ownnote\\Day5\\Day18\\a\\hello44"));

        //当程序退出的时候删除file文件
        //file.deleteOnExit();
        //当场删除文件
        file.delete();
    }
}

2.3 操作文件(夹)相关方法

public boolean creatNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

public boolean delete():删除由此File表示的文件或目录

public boolean mkdir():创建由此File表示的目录

public boolean mkdirs():创建由此File表示的目录,包括任何必需但不存在的父目录。

 File f1 = new File("c.txt");
f1.createNewFile();  // 如果文件不存在,就创建文件
f1.delete(); // 删除文件

File f2 = new File("aaa");
f2.mkdir();  // 如果文件夹不存在就创建文件夹
f2.delete();  // 可以用来删除文件

File f3 = new File("bbb/ccc/ddd");
f3.mkdirs(); // 创建多级文件夹

File f4 = new File("bbb");
f4.delete();  // 如果要删除文件夹,文件夹必须是空的

2.4 文件夹遍历

public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录。

public File[] listFiles(): 返回一个File数组,表示该File目录中的所有的子文件或目录

File f = new File("bbb");

String[] paths = f.list();
System.out.println(Arrays.toString(paths));

File[] files = f.listFiles();
System.out.println(Arrays.toString(files));
public class Demo5 {
    public static void main(String[] args) {
        File file = new File("D:\\SGUIGU\\ownnote\\Day5\\Day18\\src\\a");

        //返回file下面的所有的子文件以及子目录 ,返回数组形式的File
        File[] childFileArr = file.listFiles();
        for (int i = 0; i < childFileArr.length; i++) {
            File childFile = childFileArr[i];
            System.out.println("childFile.getAbsolutePath() = " + childFile.getAbsolutePath());
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值