File类的使用

目录

一、创建File对象

1、File类创建对象

2、注意

3、绝对路径和相对路径

4、代码演示

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

1、File类的判断文件类型、获取文件信息功能

2、代码展示

三、常用方法:创建文件、删除文件功能

1、File类创建文件的功能

2、File类删除文件的功能

3、注意

4、代码展示

四、常用方法:遍历文件夹

1、File类的遍历功能

2、listFiles方法注意事项

3、代码展示


一、创建File对象

1、File类创建对象

方法名称

说明

public File​(String pathname)

根据文件路径创建文件对象

public File​(String parent, String child)

根据父路径名字符串和子路径名字符串创建文件对象

public File​(File  parent, String child)

根据父路径对应文件对象和子路径名字符串创建文件对象

2、注意

File对象可以定位文件和文件夹。

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

3、绝对路径和相对路径

绝对路径:从盘符开始。

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

4、代码演示

public static void main(String[] args) {
        //1、创建File对象 (指定了文件的路径)
        //路径写法:C:\Users\ls\Desktop\resources\初音未来.jpg
        //        C:/Users/ls/Desktop/resources/初音未来.jpg
        //        File.separator
        //File f = new File("C:\\Users\\ls\\Desktop\\resources\\初音未来.jpg");
        //File f = new File("C:/Users/ls/Desktop/resources/初音未来.jpg");
        File f = new File("C:"+File.separator+"Users"+File.separator+"ls"+File.separator+"Desktop"+File.separator+"resources"+File.separator+"初音未来.jpg");
        long size = f.length();  //是文字的字节大小
        System.out.println(size);

        //2、File创建对象,支持绝对路径 支持相对路径(重点)
        File f2 = new File("C:\\Users\\ls\\Desktop\\resources\\河面落日.jpg");   //绝对路径
        System.out.println(f2.length());

        //相对路径:一般定位到模块中去的文件。相对到工程下!!
        File f3 = new File("file-io-app/src/data.txt");
        System.out.println(f3.length());

        //3、File创建对象,可以是文件也可以是文件夹
        File f4 =new File("C:\\Users\\ls\\Desktop\\resources");
        System.out.println(f4.exists());  //判断这个路径下是否存在?
    }

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

1、File类的判断文件类型、获取文件信息功能

方法名称

说明

public boolean isDirectory()

判断此路径名表示的File是否为文件夹

public boolean isFile()

判断此路径名表示的File是否为文件

public boolean exists()

判断此路径名表示的File是否存在

public long length()

返回文件的大小(字节数量)

public String getAbsolutePath()

返回文件的绝对路径

public String getPath()

返回定义文件时使用的路径

public String getName()

返回文件的名称,带后缀

public long lastModified()

返回文件的最后修改时间(时间毫秒值)

2、代码展示

/**
    目标:File类的获取功能
    - pubilc String getAbsolutePath():返回此File的绝对路径的字符串。
    - pubilc String getPath():获取创建文件对象的时候用的路径
    - pubilc String getName():返回此File表示的文件或目录得名称
    - pubilc String length():返回此File表示的文件长度
 */
public class FileDemo2 {
    public static void main(String[] args){
        //1、绝对路径创建一个文件对象
        File f1 = new File("C:\\Users\\ls\\Desktop\\resources\\河面落日.jpg");
        //a.获取它的绝对路径
        System.out.println(f1.getAbsolutePath());
        //b.获取文件定义的时候使用的路径。
        System.out.println(f1.getPath());
        //c.获取文件名称带后缀。
        System.out.println(f1.getName());
        //d.获取文件的大小:字节个数。
        System.out.println(f1.length());
        //e.获取文件的最后修改时间
        long time = f1.lastModified();
        System.out.println("最后修改时间为:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time));
        //f.判断文件是文件还是文件夹
        System.out.println(f1.isFile()); //ture
        System.out.println(f1.isDirectory());  //false

        System.out.println("-----------------------------");

        File f2 = new File("file-io-app\\src\\data.txt");
        //a.获取它的绝对路径
        System.out.println(f2.getAbsolutePath());
        //b.获取文件定义的时候使用的路径。
        System.out.println(f2.getPath());
        //c.获取文件名称带后缀。
        System.out.println(f2.getName());
        //d.获取文件的大小:字节个数。
        System.out.println(f2.length());
        //e.获取文件的最后修改时间
        long time2 = f2.lastModified();
        System.out.println("最后修改时间为:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time));
        //f.判断文件是文件还是文件夹
        System.out.println(f2.isFile()); //ture
        System.out.println(f2.isDirectory());  //false
        System.out.println(f2.exists());  //true

        System.out.println("----------------");

        File file = new File("D:\\");
        System.out.println(file.isFile()); //false
        System.out.println(file.isDirectory());  //true
        System.out.println(file.exists());//true

        System.out.println("------------------");

        File file2 = new File("D:/b");
        System.out.println(file2.isFile()); //false
        System.out.println(file2.isDirectory());  //false
        System.out.println(file2.exists());//false
    }
}

三、常用方法:创建文件、删除文件功能

1、File类创建文件的功能

方法名称

说明

public boolean createNewFile()

创建一个新的空的文件

public boolean mkdir()

只能创建一级文件夹

public boolean mkdirs()

可以创建多级文件夹

2、File类删除文件的功能

方法名称

说明

public boolean delete​()

删除由此抽象路径名表示的文件或空文件夹

3、注意

delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站。

4、代码展示

/**
    目标: File类的创建和删除方法
    -public boolean createNewFile(): 当前仅当具有该名称的文件上不存在时,
            创建一个新的空文件。(几乎不用的,因为以后文件都是自动创建的!)
    -public boolean delete(): 删除由此File表示的文件或目录。(只能删除空目录)
    -public boolean mkdir(): 创建由此File表示的目录。(只能创建一级目录)
    -public boolean mkdirs(): 可以创建多级目录(建议使用的)
 */
public class FileDemo3 {
    public static void main(String[] args) throws IOException {
        File f = new File("file-io-app\\src\\data.txt");
        //a.创建新文件,创建成功返回true,反之,不需要这个,以后文件写出去的时候会自动创建
        System.out.println(f.createNewFile());

        File f1 = new File("file-io-app\\src\\data2.txt");
        System.out.println(f1.createNewFile());  //(几乎不用的,因为以后文``件都是自动创建的!)

        //b.mkdir创建一级目录
        File f2 = new File("C:\\Users\\ls\\Desktop\\resources\\aaa");
        System.out.println(f2.mkdir());

        //c.mkdirs创建多级目录(重点)
        File f3 = new File("C:\\Users\\ls\\Desktop\\resources\\bbb\\ccc\\ddd\\eee");
        //System.out.println(f3.mkdir());
        System.out.println(f3.mkdirs()); //支持多级创建

        //d.删除文件或者空文件夹
        System.out.println(f1.delete());
        File f4 = new File("C:\\Users\\ls\\Desktop\\resources\\河面落日.jpg");
        System.out.println(f4.delete());   //占用一样可以删除

        //只能删除空文件夹,不能删除非空文件夹
        File f5 = new File("C:\\Users\\ls\\Desktop\\resources\\aaa");
        System.out.println(f5.delete());

    }
}

四、常用方法:遍历文件夹

1、File类的遍历功能

方法名称

说明

public String[] list()

获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。

public File[] listFiles()(常用)

获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

2、listFiles方法注意事项

当文件不存在时或者代表文件时,返回null

当文件对象代表一个空文件夹时,返回一个长度为0的数组

当文件对象是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回

当文件对象是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件

当没有权限访问该文件夹时,返回null

3、代码展示

/**
    目标: File针对目录的遍历
    -public String[] list():
            获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
    -public File[] listFiles()(常用):
            获取当前目录下所有"一级文件对象"。到一个文件对象数组中去返回(重点)
 */
public class FileDemo4 {
    public static void main(String[] args) throws IOException {
    //1、定位一个目录
        File f1 = new File("C:\\Users\\ls\\Desktop\\resources");
        String[] names = f1.list();
        for (String name : names) {
            System.out.println(name);
        }

        //2、一级文件对象
        //获取当前目录下所有的"一级文件对象"到一个文件对象的数组中返回(重点)
        File[] file = f1.listFiles();
        for (File file1 : file) {
            System.out.println(file1.getAbsolutePath());
        }

        //注意事项!!
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁༺๑小王不是程序员๑༻꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值