Java的File常用方法【详解】

目录

1.概念

2.创建对象

3.常用方法1:判断文件类型、获取文件信息

4.常用方法2:创建文件、删除文件

5.常用方法3:遍历文件夹

1.概念

File是java.io.包下的类, File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)

        注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据。

2.创建对象

        注意事项:

                File对象既可以代表文件、也可以代表文件夹。

                File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。

        绝对路径、相对路径

                绝对路径:从盘符开始

                相对路径:不带盘符,默认直接到当前工程下的目录寻找文件

package com.itheima.day09.teacher.file;

import java.io.File;

public class FileTest01 {
    /*
      目标:
         掌握File对象的创建。

     三个构造
        File(String 目标文件的路径)
        File(String parent,String chlid) 根据父路径和子路径 确定文件的路径
        File(File parent,String child)根据父路径的对象形式和子路径 确定文件的路径
     */
    public static void main(String[] args) {
       // 想要将  E:\418\download\a.txt 文件表达成File对象
         //     \java中是转义字符  \\ 表示一个 \  或者 / 表达 \
        File file = new File("E:\\418\\download\\a.txt");
//        new File("E:/418/download/a.txt");
        //file 表示了 E:\418\download目录下的 a.txt文件
        System.out.println(file);
        System.out.println("文件大小:"+file.length());
        //刚才封装的是文件  封装目录
        //  目录--文件夹 --也是写路径
        File dir = new File("E:\\418\\download");
        System.out.println(dir);
        System.out.println(dir.length());//程序中是 不去获取文件夹大小的...

        //封装方式二
        // 想要将  E:\418\download\a.txt 文件表达成File对象
        File file2 = new File("E:\\418\\download", "a.txt");
        System.out.println(file2);
        System.out.println(file2.length());

        //封装方式三
        // 想要将  E:\418\download\a.txt 文件表达成File对象
        File file3 = new File(dir, "a.txt");
        System.out.println(file3);
        System.out.println(file3.length());

        //总结: File可以表达文件和文件夹
        //  File在封装的时候  不去考虑 文件是否真实存在
        File file4 = new File("E:\\418\\download\\b.txt");
        System.out.println(file4.length());
    }
}

3.常用方法1:判断文件类型、获取文件信息

代码演示:

package com.itheima.day09.teacher.file;

import java.io.File;

public class Filetest03 {
    /*
     掌握
        File的判断方法
     */
    public static void main(String[] args) {
        File file1 = new File("E:\\418\\download\\a.txt");
        File file2 = new File("E:\\418\\download\\b.txt");
        File file3 = new File("E:\\418\\download\\haha.txt");

        // 请判断 file1 file2 file3是否都是真实存在的
        // exists()
        System.out.println("file1是否真实存在:"+file1.exists());//true
        System.out.println("file2是否真实存在:"+file2.exists());//false
        System.out.println("file3是否真实存在:"+file3.exists());//true

        //判断 file1是文件还是文件夹? file3是文件还是文件夹?
        //     isFile()是否是文件 isDirectory()是否是文件夹
        System.out.println("file1是文件吗:"+file1.isFile());//true
        System.out.println("file1是文件夹吗:"+file1.isDirectory());//false
        System.out.println("file3是文件吗:"+file3.isFile());//false
        System.out.println("file3是文件夹吗:"+file3.isDirectory());//true

    }
}


-------------------
package com.itheima.day09.teacher.file;

import java.io.File;
import java.text.SimpleDateFormat;

public class FileTest04 {
    /*
     掌握 File的获取方法

     */
    public static void main(String[] args) {

        File file1 = new File("E:\\418\\download\\a.txt");//绝对路径
        File file2 = new File("day09\\src\\heihei.txt");//相对路径
        //1:获取文件的名字 getName()  后缀名属于文件名一部分
        System.out.println("file1的名字:"+file1.getName());//a.txt
        System.out.println("file2的名字:"+file2.getName());//heihei.txt
        //2: 获取 文件的字节数 length()
        System.out.println("file1的字节数:"+file1.length());
        System.out.println("file2的字节数:"+file2.length());
        //3:获取文件的最后修改时间 long lastModified()获取的是毫秒值
        long l = file1.lastModified();
        //时间毫秒值  变成指定的 yyyy-MM-dd HH:mm:ss
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("file1的最后修改时间:"+sdf.format(l));
        // 4:获取路径
        //  getPath()  获取封装路径  封装是什么得到是什么
        System.out.println("file1的封装路径:"+file1.getPath());
        System.out.println("file2的封装路径:"+file2.getPath());
        //  getAbsolutePath()获取绝对路径 带盘符的路径
        System.out.println("file1的封装路径:"+file1.getAbsolutePath());
        System.out.println("file2的封装路径:"+file2.getAbsolutePath());

    }
}

4.常用方法2:创建文件、删除文件

    File类创建文件的功能:

   File类删除文件的功能:

注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。

package com.itheima.day09.teacher.file;

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

public class FileTest05 {
    /*
      目标:
         理解 文件(夹)  创建和删除
     */
    public static void main(String[] args) throws IOException {
        //在 E:\418\download  创建一个文件 abc.txt
        // 先创建一个带有路径File对象
        File file = new File("E:\\418\\download\\abc.txt");//路径写要创建文件的路径
        //file 不是真实存在的
        //创建文件  createNewFile()
        boolean flag1 = file.createNewFile();//爆红是因为 当前叫编译期异常--跟外界因素
                            // 写的路径 目录是真的吗?不一定 外界因素  有没有权限呀?
        System.out.println("文件是否创建成功了:"+flag1);
        // 第一次执行 结果 true  已经有了 就是false

        // 在 E:\418\download  创建一个文件夹   418学生档案  一层目录
        // 先创建带有 路径的 File对象
        File dir = new File("E:\\418\\download\\418学生档案");
        //创建文件夹  mkdir()
        System.out.println("文件夹是否创建成功:"+dir.mkdir());//创建单级目录

        // 在 E:\418\download  创建一个文件夹   418组长\刘靖轩  两层目录
        File dir2 = new File("E:\\418\\download\\418组长\\刘靖轩");
        System.out.println("创建多层目录:"+dir2.mkdirs());//创建多级目录

        // 删除文件(夹)  delete
        System.out.println(file.delete());//不走回收站 慎用
        System.out.println(dir.delete());//删除单级
        System.out.println(dir2.delete());//删除多级--其实是单级的

        File dirs = new File("E:\\418\\download\\搞笑");
        System.out.println(dirs.delete());
        // 注意 delete不能删除 非空文件夹
    }
}

5.常用方法3:遍历文件夹

File类提供的遍历文件夹的功能

package com.itheima.day09.teacher.file;

import java.io.File;

public class FileTest06 {

    /*
     目标
        掌握 遍历文件夹的方法
     */
    public static void main(String[] args) {
        File dir = new File("D:/");
        //当前目录下 有很多文件和文件夹  我想获取怎么获取呢
        // String[] list()  获取的当前目录下 每个文件及文件夹的名字String
        String[] list = dir.list();
        //先判断是否为null以及是否有内容
        for (String s : list) {
            System.out.println("子文件(夹)的名字:"+s);
        }
        System.out.println("===================");
        //File[] listFiles() 获取当前目录下 每个文件及文件夹的对象形式File
        File[] files = dir.listFiles();
        for (File file : files) {
            System.out.println("查看一下每个文件的绝对路径:"+file.getAbsolutePath());
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值