File相关知识点

File:

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

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

 

构造器:

构造器说明
public File(String pathname)根据文件路径创建文件对象
public File(String parent, String child)根据父路径和子路径名字创建文件对象
public File(File parent, String child)根据父路径对应文件对象和子路径名字创建文件对象

注意:

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

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

在windows中路径支持:\和/ 默认是\,字符串中\要写两个 \ \。

在其他操作系统都是使用/

package com.ouyang.demo03;

import java.io.File;

public class demo01 {
    public static void main(String[] args) {
        //public File(String pathname)
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
        System.out.println("f1 = " + f1);

        //public File(String parent, String child)
        File f2=new File("D:\\Java\\JavaEE\\FileTest","aaa");
        System.out.println("f2 = " + f2);

        //public File(File   parent, String child)
        File f3=new File(f1,"bbb");
        System.out.println("f3 = " + f3);
    }
}

 

 
 

路径:

路径:

​ 1.绝对路径:从盘符开始。

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

 
 

常用方法:

创删文件:

创建文件:
方法名称说明
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()只能创建一级文件夹
public boolean mkdirs()可以创建多级文件夹
package com.ouyang.demo03;

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

public class demo02 {
    public static void main(String[] args) throws IOException {
        //File类创建功能:
        // 1.booLean createNewFile()创建新文件,true表示创建成功
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
        boolean newFile = f1.createNewFile();
        System.out.println("newFile = " + newFile);

        // 2.boolean mkdir()make directory创建单级文件夹,true表示创建成功
        File f2=new File("D:\\Java\\JavaEE\\FileTest\\bbb");
        boolean mkdir = f2.mkdir();
        System.out.println("mkdir = " + mkdir);

        // 3.booLean mkdirs()创建多级文件夹,true表示创建成功
        File f3=new File("D:\\Java\\JavaEE\\FileTest\\ccc\\ddd\\eee");
        boolean mkdirs = f3.mkdirs();
        System.out.println("mkdirs = " + mkdirs);
    }

}

 
 

 
 

删除文件:
方法名称说明
public boolean delete()删除文件、空文件夹

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

删除目录时的注意事项:

​ delete方法直接删除不走回收站。

​ 如果删除的是一个有内容文件夹,需要先删除文件夹中的内容,最后才能删除文件夹。

package com.ouyang.demo03;

import java.io.File;

public class demo04 {
    //boolean delete() 可以删除文件和文件夹,删除成功返回true
    public static void main(String[] args) {
        //删除文件,删除成功返回true
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
        boolean delete = f1.delete();
        System.out.println("delete = " + delete);

        //删除空文件夹
        File f2=new File("D:\\Java\\JavaEE\\FileTest\\bbb");
        boolean delete1 = f2.delete();
        System.out.println("delete1 = " + delete1);

        //删除有内容的文件夹,不能直接删除的
        // 先删除文件夹里面的内容,再删除空文件夹
        File inner=new File("D:\\Java\\JavaEE\\FileTest\\ccc\\ddd");
        boolean delete2 = inner.delete();
        System.out.println("delete2 = " + delete2);

        File f3=new File("D:\\Java\\JavaEE\\FileTest\\ccc");
        boolean delete3 = f3.delete();
        System.out.println("delete3 = " + delete3);
    }
}

 
 
 
 

获取文件:

方法名称说明
public boolean exists()判断当前文件对象,对应的文件路径是否存在,存在返回true
public boolean isFile()判断当前文件对象指代的是否是文件,是文件返回true,反之。
public boolean isDirectory()判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
public String getName()获取文件的名称(包含后缀)
public long length()获取文件的大小,返回字节个数
public long lastModified()获取文件的最后修改时间。
public String getPath()获取创建文件对象时,使用的路径
public String getAbsolutePath()获取绝对路径
package com.ouyang.demo02;

import java.io.File;

public class demo05 {
    public static void main(String[] args) {
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
        // public boolean exists() :
        // 判断当前文件对象,对应的文件路径是否存在,存在返回true
        System.out.println("f1.exists() = " + f1.exists());//true

        // public boolean isFile()  :
        // 判断当前文件对象指代的是否是文件,是文件返回true,反之。
        System.out.println("f1.isFile() = " + f1.isFile());//true

        // public boolean isDirectory():
        // 判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
        System.out.println("f1.isDirectory() = " + f1.isDirectory());//false

    }
}

package com.ouyang.demo02;

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

public class demo06 {
    public static void main(String[] args) {
        // File类可以获取文件或文件夹相关信息
        //文件,绝对路径
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\WWW.txt");

        //文件夹,相对路径
        File f2=new File("homeworkDay08\\abc");

        // String getAbsolutePath() 获取绝对路径
        System.out.println("f1.getAbsolutePath() = " + f1.getAbsolutePath());//D:\Java\JavaEE\FileTest\WWW.txt
        System.out.println("f2.getAbsolutePath() = " + f2.getAbsolutePath());//D:\Java\JavaEE\Program\homeworkDay08\abc

        // String getName() 获取名字, 获取路径中最后一个\右边的
        System.out.println("f1.getName() = " + f1.getName());//WWW.txt
        System.out.println("f2.getName() = " + f2.getName());//abc

        // String getParent() 获取父路径,最后一个\左边的
        System.out.println("f1.getParent() = " + f1.getParent());//D:\Java\JavaEE\FileTest
        System.out.println("f2.getParent() = " + f2.getParent());//homeworkDay08

        // long length() long length() 获取"文件"大小, 单位是字节, 文件夹不能直接获取大小, 要把文件夹中的所有文件大小加起来就是文件夹的大小
        System.out.println("f1.length() = " + f1.length());//9
        System.out.println("f2.length() = " + f2.length());//0


        // long lastModified() 获取文件的最后修改时间
        long lastModified = f1.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        String format = sdf.format(lastModified);
        System.out.println("format = " + format);//2024年07月27日 17时33分36秒
    }
}

package com.ouyang.demo02;

import java.io.File;

public class demo07 {
    public static void main(String[] args) {
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\aaa");
        boolean b = f1.renameTo(new File("D:\\Java\\JavaEE\\FileTest\\fff"));
        System.out.println("b = " + b);
    }
}

 
 

遍历文件:

方法名称说明
public String[] list()获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
public File[] listFiles()获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

listFiles方法:

​ 1.当调用者是文件,或者路径不存在时,返回null。

​ 2.当调用者是一个文件夹,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件。

​ 3.当调用者是一个文件夹,但是没有权限访问该文件夹时,返回null。

package com.ouyang.demo02;

import java.io.File;

public class demo08 {
    public static void main(String[] args) {
        File f1=new File("D:\\Java\\JavaEE\\FileTest\\ccc");

        File[] files = f1.listFiles();
        System.out.println("files = " + files);
        for (File file : files) {
            System.out.println("file = " + file);
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值