File类

目录

File类

概念:

构造方法:

常用方法:

代码演示:

绝对路径和相对路径:

代码演示:

其他的各种方法:

代码演示:

注意:

列举方法:

代码举例:


File类

概念:

File类就是描述文件或文件夹的,只要我们在Java中要操作文件或文件夹,就找File类。

该类主要用于文件和目录的创建、文件的查找和文件的删除等。

构造方法:

  • public File(String pathname)

    表示根据文件或文件夹的路径名创建一个File对象。

    使用File类的构造函数可以把指定的字符串封装成File类的对象,但是这个字符串表示的路径或者文件到底是否存在,File类是不进行判断的。

    注意:File类表示文件和目录路径名的抽象表示形式。那么该路径代表的文件或文件夹不一定存在。

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

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

最简单的,一步到位

public static void main(String[] args) throws IOException {
    //新建文件
        File file = new File("C:\\Users\\luoxuan\\Desktop\\a.txt");
        boolean b = file.createNewFile();
        System.out.println(b);//true
        boolean delete = file.delete();
        System.out.println(delete);//true
}

常用方法:

  • public String getAbsolutePath() :获取的当前调用这个方法的File对象的全路径(绝对路径或者真实路径) 返回的是路径的字符串;

  • public String getPath() :获取到当前File类的对象中封装的内容。

  • public String getName() :获取的是File类的对象中封装的文件或目录的最后一级名称。

  • public long length() :获取文件大小long size = file.length();

代码演示:

public class FileTest {
    public static void main(String[] args) throws IOException {
        //创建file类对象
        File file = new File("D:\\123.txt");//不能文件夹和文件一起创建,
        boolean file1 = file.createNewFile();
        System.out.println(file1);//true
        //得到file对象的全路径
        File absoluteFile = file.getAbsoluteFile();
        System.out.println(absoluteFile);//D:\123.txt
        //得到file对象的文件名
        String name = file.getName();
        System.out.println(name);//123.txt
        //获取文件的大小
        long length = file.length();
        System.out.println(length);//0
    }
}

绝对路径和相对路径:

  • 绝对路径:从盘符开始的路径,这是一个完整的路径(如:D:\bbb.java)。

  • 相对路径:相对于项目目录的路径(如:bbb.java),这是一个便捷的路径,开发中经常使用。

代码演示:

public class Lujing {
    public static void main(String[] args) {
        //D盘下的文件
        File file = new File("D:\\xiaocao.txt");
        System.out.println(file.getAbsoluteFile());//D:\xiaocao.txt
        //项目下的文件,路径会根据项目自动生成
        File file1 = new File("xiaocao.txt");
        System.out.println(file1.getAbsoluteFile());//D:\javase\wenjiang\javase\xiaocao.txt
    }
}
​

其他的各种方法:

  • public boolean exists() :是否存在 如果File类对象中的文件或者文件夹在硬盘上存在 返回 true  ,否则返回false;

  • public boolean isDirectory() :是否是文件夹 如果是文件夹 返回 true  否则返回false;

  • public boolean isFile() :是否是文件 如果是文件 返回 true , 否则返回false;

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

A:true :表示创建文件成功;  false :表示创建文件失败,失败原因基本是因为当前的目录有了相同的文件;

B:如果指定的路径不存在,这时就会抛异常 Java.io.IOException:系统找不到指定的路径。这时是不会去创建文件的

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

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

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

代码演示:

public class Zhonghe {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\hhh.txt");
        //判断该文件是否在D盘下存在
        System.out.println(file.exists());//false//因为不存在该文件,所以返回false,第二次就是true
        //判断是否是文件夹
        System.out.println(file.isDirectory());//false
        //判断是否是文件
        System.out.println(file.isFile());//true
​
        //创建目录
        File file1 = new File("D:\\File1");
        //判断该文件夹是否存在
        System.out.println(file1.exists());//false
        boolean mkdir = file1.mkdir();
        System.out.println("file1创建的目录是否成功"+mkdir);//file1创建的目录是否成功true
        //创建多级目录
        File file2 = new File("D:\\File2\\java");
        System.out.println(file2.mkdirs());//true
​
        //删除目录
        System.out.println(file2.delete());//true 把java目录删除了,File2还在,所以该删除只删除一级目录
        System.out.println(file2.delete());
        System.out.println(file1.delete());//true File1没有了,他只删除最里面的那个目录
​
    }
}

注意:

delete方法,如果此File表示目录,则目录必须为空才能删除。

列举方法:

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

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

代码举例:

 //该File目录中的所有子文件或目录
        System.out.println("========");
        File file3 = new File("D:\\File2\\f");
        boolean mkdirs = file3.mkdirs();
        String[] list = file3.list();
        for (String s : list) {
            System.out.println(s);//nnnn.txt
        }
​
        //该File目录中的所有的子文件或目录
        System.out.println("=====");
        File[] files = file3.listFiles();
        for (File file4 : files) {
            System.out.println(file4);//D:\File2\f\nnnn.txt
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值