File类

有些数据想要长久保存,该怎么办呢?

答案如下图所示:可以将数据以文件的形式存在硬盘里,即使程序结束了,断电了只要硬盘没坏,数据就会永久存在,所以在以后的开发中,有些程序需要的数据或者程序处理后的数据,如果要长久保存,就会保存在文件中,因此我们肯定要与文件经常打交道,因此Java为了方便操作文件或者文件夹,提供了一个File类。现在要学习的File类,它就是用来表示当前系统下的文件(也可以是文件夹) ,File是java.io.包下的类,通过File类提供的方法可以获取当前操作系统的文件大小、判断文件是否存在、创建文件、创建文件夹等。 **但是需要我们注意:**File对象只能对文件本身进行操作,不能操作文件中的内容。

1.1 File对象的创建

学习File类和其他类一样,第一步是创建File类的对象。 想要创建对象,我们得看File类有哪些构造方法。

意

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

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

下面我们演示一下,File类创建对象的代码

java 复制代码
/**
 * 目标:掌握File创建对象,代表具体文件的方案。
 */
public class FileTest1 {
    public static void main(String[] args) {
        // 创建一个File对象,指代某个具体的文件。
        // File f1 = new File("D:/resource/ab.txt");
        // File f1 = new File("D:\\resource\\ab.txt");
        // File.separator: 路径分隔符
        File f1 = new File("D:"+File.separator+"resource"+File.separator+"ab.txt");
        System.out.println(f1.length());// 文件大小(单位:字节)

        // 记录文件夹本身的大小(文件夹本身的信息), 不是获取所有文件的大小
        File f2 = new File("D:/resource");
        System.out.println(f2.length());

        // 注意:File对象可以指代一个不存在的文件路径
        File f3 = new File("D:/resource/aaaa.txt");
        System.out.println(f3.length());
        System.out.println(f3.exists()); // false

        // 我现在要定位的文件是在模块中,应该怎么定位呢?
        // 绝对路径:带盘符的路径
        // File f4 = new File(""D:\\Working\\F2408A\\javase\\day10_file\\src\\ab.txt");
        // 相对路径(重点):不带盘符,默认是直接去工程下寻找文件的。
        File f4 = new File("day10_file\\src\\ab.txt");
        System.out.println(f4.length());
    }
}

1. File类构建对象的方式是什么样的?File的对象可以代表哪些东西?
	File file = new File("文件/文件夹/绝对路径/相对路径");

2. 绝对路径和相对路径是什么意思?
	绝对路径是带盘符的。
	相对路径是不带盘符的,默认到当前工程下寻找文件。

1.2 File判断和获取方法

各位同学,刚才我们创建File对象的时候,会传递一个文件路径过来。但是File对象封装的路径是存在还是不存在,是文件还是文件夹其实是不清楚的。好在File类提供了方法可以帮我们做判断。

java 复制代码
public class FileTest2 {
    public static void main(String[] args) {
        // 创建文件对象,指代某个文件
        File f1 = new File("D:/resource/ab.txt");
        // File f1 = new File("D:/resource/");

        // 判断当前文件对象,对应的文件路径是否存在,存在返回true.
        System.out.println(f1.exists());

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

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

        // 5.public String getName():获取文件的名称(包含后缀)
        System.out.println(f1.getName());

        // 获取文件的大小,返回字节个数
        System.out.println(f1.length());

        // 获取文件的最后修改时间。
        long time = f1.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        System.out.println(sdf.format(time));

        // 获取创建文件对象时,使用的路径
        File f2 = new File("D:\\resource\\ab.txt");
        File f3 = new File("day10_file\src\ab.txt");
        System.out.println(f2.getPath());
        System.out.println(f3.getPath());

        // 获取绝对路径
        System.out.println(f2.getAbsolutePath());
        System.out.println(f3.getAbsolutePath());
    }
}
相关推荐
cpolar技术支持6 分钟前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang1 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰2 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc3 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
2035去旅行3 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希1234 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
蜗牛一步步往上爬4 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
女神下凡4 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
羲云网络6 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
张张123y6 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent