学习笔记_Java中File类的使用

文件(File类)

1、File类的构造方法

【注】:构造一个File对象,并不会导致任何磁盘操作。只有当我们调用File对象的某些方法(比如: createNewFile(); 方法)的时候,才真正进行磁盘操作。

方法名方法说明
File (String pathname)根据参数中文件路径字符串创建文件对象
File (String parent, String child)根据父路径名字符串子路径名字符串创建文件对象
File (File parent, String child)根据父文件对象子路径名字符串创建文件对象

举例说明

public class Demo {
    public static void main(String[] args) {
		//构造方法一:	
        //File(String pathname);//通过将给定的路径名字符串,转换为抽象路径名来创建新的File实例
        String pathName =  "D:/Demo1/Demo11/hello.txt";//使用绝对路径创建一个文件对象
        File file_1 =  new File(pathName);
        
		//构造方法二:
        //File(String parent,String child);//从父抽象路径名和子路径名字符串创建新的 File实例
        String parent =  "D:\\Demo2\\Demo22";// 此处路径 = "D:/Demo/Demo2"
        String child_1 =  "hello.txt";
        File file_2 =  new  File(parent, child_1);

		//构造方法三:
        //File(File parent,String child);//根据父文件对象和子路径名字符串创建文件对象
        File file_parent = new File("D:\\Demo3");
        String child_2 = "\\Demo33\\hello.txt";
        File file_3 = new File(file_parent, child_2);

        //输出文件类对象的路径
        //直接输出file类对象, 输出的就是file代表的文件绝对路径
        System.out.println("file_1的路径:" + file_1);
        System.out.println("file_2的路径:" + file_2);
        System.out.println("file_3的路径:" + file_3);
    }
}

输出结果
在这里插入图片描述

2、File类创建文件和目录的方法

方法名方法说明
boolean createNewFile()创建文件,若此文件已存在则返回false
boolean mkdir()创建一级文件,如果此文件目录存在, 或此文件目录的父目录不存在, 则返回false
boolean mkdirs()创建多级目录, 如果父目录不存在, 则一并创建
boolean renameTo(File dest)重命名文件或剪切文件由此抽象路径名表示的文件

举例说明(此代码接上面)

//file_1 path:"D:/Demo1/Demo11/hello.txt"
        file_1.mkdir();//返回 false,因为父级目录不存在

        //此操作会创建三级目录 (Demo1->Demo11->hello.txt),此处(hello.txt)是一个目录而不是文件
        file_1.mkdirs();

        //如果要新建文件需要使用createNewFile()
        file_1.mkdir();//返回 false,因为在 "D:/Demo1/Demo11"路径下有一个名为(hello.txt)的目录

        //在 "D:/Demo1/Demo11" 目录下创建一个名为 hello2 的txt文件
        File file_5 = new File("D:/Demo1/Demo11/hello2.txt");
        try {
            if (file_5.createNewFile()) {
                System.out.println("文件创建成功!");
            }else {
                System.out.println("文件创建失败!");
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件创建失败!");
        }

        //重命名文件或剪切文件
        // file对象1.renameTo(file对象2);
        String pathName2 = "D:/hello3.txt";
        File file_6 = new File(pathName2);//现在是hello3.txt
        System.out.println(file_6.createNewFile());//检验是否成功创建文件file_6
        File file_7 = new File("D:/helloworld.txt");
        file_6.renameTo(file_7);//hello3.txt 已经更名为 helloworld.txt
        System.out.println(file_6);//结果是:D:\hello3.txt (本地不存在了)
        System.out.println(file_7);//结果是:D:\helloworld.txt (本地存在)
    }
}

3、删除文件的方法

方法名方法说明
boolean delete()该方法默认只能删除文件空文件夹

4、判断文件的方法

方法名方法说明
boolean isDirectory()判断是否是文件目录
boolean isFile判断是否是文件
boolean exists()判断是否存在
boolean canRead()判断是否可读
boolean canWrite()判断是否可写
boolean isHidden()判断是否隐藏

举例说明

public class TestFile3 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("hello2.txt");
        File f2 = new File("D:/hello3.txt");
        File f3 = new File("D:/hello4.txt");
        f3.createNewFile();//在本地创建 hello4.txt

        System.out.println("f1的内容:");
        System.out.println(f1.isDirectory());
        System.out.println(f1.isFile());
        System.out.println(f1.exists());
        System.out.println(f1.canRead());
        System.out.println(f1.canWrite());
        System.out.println(f1.isHidden());

        System.out.println("==================");
        System.out.println("f2的内容:");
        System.out.println(f2.isDirectory());
        System.out.println(f2.isFile());
        System.out.println(f2.exists());
        System.out.println(f2.canRead());
        System.out.println(f2.canWrite());
        System.out.println(f2.isHidden());

        System.out.println("==================");
        System.out.println("f3的内容:");
        System.out.println(f3.isDirectory());
        System.out.println(f3.isFile());
        System.out.println(f3.exists());
        System.out.println(f3.canRead());
        System.out.println(f3.canWrite());
        System.out.println(f3.isHidden());
    }
}

输出结果:
请添加图片描述 请添加图片描述 请添加图片描述

5、获取文件信息的方法

方法名方法说明
String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
String getPath()将此抽象路径名转换为路径名字符串
String getName()返回由此抽象路径名表示的文件或文件夹的名称
String getParent()返回此抽象路径名的父路径名的字符串,或 null如果路径名不叫父目录
long length()返回由此抽象路径名表示的文件的长度
long lastModified()返回文件最后修改的时间毫秒值

举例说明

public class FileInfo {

    public static void main(String[] args) {

        File f1 = new File("hello.txt");
        System.out.println(f1.exists());
        File f2 = new File("D:\\Demo1");
        System.out.println(f1.getAbsolutePath());
        System.out.println(f1.getPath());
        System.out.println(f1.getName());
        System.out.println(f1.getParent());
        System.out.println(f1.length());
        System.out.println(f1.lastModified());
        System.out.println("===================");
        System.out.println(f2.getAbsolutePath());
        System.out.println(f2.getPath());
        System.out.println(f2.getName());
        System.out.println(f2.getParent());
        System.out.println(f2.length());
        System.out.println(f2.lastModified());
    }
}

输出结果:
在这里插入图片描述在这里插入图片描述

6、遍历文件夹

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

举例说明

public class Traversal {

    public static void main(String[] args) {

        File f1 = new File("hello.txt");

        File f2 = new File("D:\\Demo1");

        //获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
        String[] list = f2.list();
        for(String str: list) {
            System.out.println(str);
        }

        //获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回
        File [] files = f2.listFiles();
        for (File o: files){
            System.out.println(o);
        }
    }
}

输出结果:
在这里插入图片描述

作者寄语:

如果本篇文章对你有用,请给作者点个小赞,为作者加油!
如果有什么建议和问题,欢迎评论区讨论。
持续更新… …

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值