Java的File常用方法【详解】

目录

1.概念

2.创建对象

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

4.常用方法2:创建文件、删除文件

5.常用方法3:遍历文件夹

1.概念

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

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

2.创建对象

        注意事项:

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

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

        绝对路径、相对路径

                绝对路径:从盘符开始

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

package com.itheima.day09.teacher.file;

import java.io.File;

public class FileTest01 {
    /*
      目标:
         掌握File对象的创建。

     三个构造
        File(String 目标文件的路径)
        File(String parent,String chlid) 根据父路径和子路径 确定文件的路径
        File(File parent,String child)根据父路径的对象形式和子路径 确定文件的路径
     */
    public static void main(String[] args) {
       // 想要将  E:\418\download\a.txt 文件表达成File对象
         //     \java中是转义字符  \\ 表示一个 \  或者 / 表达 \
        File file = new File("E:\\418\\download\\a.txt");
//        new File("E:/418/download/a.txt");
        //file 表示了 E:\418\download目录下的 a.txt文件
        System.out.println(file);
        System.out.println("文件大小:"+file.length());
        //刚才封装的是文件  封装目录
        //  目录--文件夹 --也是写路径
        File dir = new File("E:\\418\\download");
        System.out.println(dir);
        System.out.println(dir.length());//程序中是 不去获取文件夹大小的...

        //封装方式二
        // 想要将  E:\418\download\a.txt 文件表达成File对象
        File file2 = new File("E:\\418\\download", "a.txt");
        System.out.println(file2);
        System.out.println(file2.length());

        //封装方式三
        // 想要将  E:\418\download\a.txt 文件表达成File对象
        File file3 = new File(dir, "a.txt");
        System.out.println(file3);
        System.out.println(file3.length());

        //总结: File可以表达文件和文件夹
        //  File在封装的时候  不去考虑 文件是否真实存在
        File file4 = new File("E:\\418\\download\\b.txt");
        System.out.println(file4.length());
    }
}

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

代码演示:

package com.itheima.day09.teacher.file;

import java.io.File;

public class Filetest03 {
    /*
     掌握
        File的判断方法
     */
    public static void main(String[] args) {
        File file1 = new File("E:\\418\\download\\a.txt");
        File file2 = new File("E:\\418\\download\\b.txt");
        File file3 = new File("E:\\418\\download\\haha.txt");

        // 请判断 file1 file2 file3是否都是真实存在的
        // exists()
        System.out.println("file1是否真实存在:"+file1.exists());//true
        System.out.println("file2是否真实存在:"+file2.exists());//false
        System.out.println("file3是否真实存在:"+file3.exists());//true

        //判断 file1是文件还是文件夹? file3是文件还是文件夹?
        //     isFile()是否是文件 isDirectory()是否是文件夹
        System.out.println("file1是文件吗:"+file1.isFile());//true
        System.out.println("file1是文件夹吗:"+file1.isDirectory());//false
        System.out.println("file3是文件吗:"+file3.isFile());//false
        System.out.println("file3是文件夹吗:"+file3.isDirectory());//true

    }
}


-------------------
package com.itheima.day09.teacher.file;

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

public class FileTest04 {
    /*
     掌握 File的获取方法

     */
    public static void main(String[] args) {

        File file1 = new File("E:\\418\\download\\a.txt");//绝对路径
        File file2 = new File("day09\\src\\heihei.txt");//相对路径
        //1:获取文件的名字 getName()  后缀名属于文件名一部分
        System.out.println("file1的名字:"+file1.getName());//a.txt
        System.out.println("file2的名字:"+file2.getName());//heihei.txt
        //2: 获取 文件的字节数 length()
        System.out.println("file1的字节数:"+file1.length());
        System.out.println("file2的字节数:"+file2.length());
        //3:获取文件的最后修改时间 long lastModified()获取的是毫秒值
        long l = file1.lastModified();
        //时间毫秒值  变成指定的 yyyy-MM-dd HH:mm:ss
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("file1的最后修改时间:"+sdf.format(l));
        // 4:获取路径
        //  getPath()  获取封装路径  封装是什么得到是什么
        System.out.println("file1的封装路径:"+file1.getPath());
        System.out.println("file2的封装路径:"+file2.getPath());
        //  getAbsolutePath()获取绝对路径 带盘符的路径
        System.out.println("file1的封装路径:"+file1.getAbsolutePath());
        System.out.println("file2的封装路径:"+file2.getAbsolutePath());

    }
}

4.常用方法2:创建文件、删除文件

    File类创建文件的功能:

   File类删除文件的功能:

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

package com.itheima.day09.teacher.file;

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

public class FileTest05 {
    /*
      目标:
         理解 文件(夹)  创建和删除
     */
    public static void main(String[] args) throws IOException {
        //在 E:\418\download  创建一个文件 abc.txt
        // 先创建一个带有路径File对象
        File file = new File("E:\\418\\download\\abc.txt");//路径写要创建文件的路径
        //file 不是真实存在的
        //创建文件  createNewFile()
        boolean flag1 = file.createNewFile();//爆红是因为 当前叫编译期异常--跟外界因素
                            // 写的路径 目录是真的吗?不一定 外界因素  有没有权限呀?
        System.out.println("文件是否创建成功了:"+flag1);
        // 第一次执行 结果 true  已经有了 就是false

        // 在 E:\418\download  创建一个文件夹   418学生档案  一层目录
        // 先创建带有 路径的 File对象
        File dir = new File("E:\\418\\download\\418学生档案");
        //创建文件夹  mkdir()
        System.out.println("文件夹是否创建成功:"+dir.mkdir());//创建单级目录

        // 在 E:\418\download  创建一个文件夹   418组长\刘靖轩  两层目录
        File dir2 = new File("E:\\418\\download\\418组长\\刘靖轩");
        System.out.println("创建多层目录:"+dir2.mkdirs());//创建多级目录

        // 删除文件(夹)  delete
        System.out.println(file.delete());//不走回收站 慎用
        System.out.println(dir.delete());//删除单级
        System.out.println(dir2.delete());//删除多级--其实是单级的

        File dirs = new File("E:\\418\\download\\搞笑");
        System.out.println(dirs.delete());
        // 注意 delete不能删除 非空文件夹
    }
}

5.常用方法3:遍历文件夹

File类提供的遍历文件夹的功能

package com.itheima.day09.teacher.file;

import java.io.File;

public class FileTest06 {

    /*
     目标
        掌握 遍历文件夹的方法
     */
    public static void main(String[] args) {
        File dir = new File("D:/");
        //当前目录下 有很多文件和文件夹  我想获取怎么获取呢
        // String[] list()  获取的当前目录下 每个文件及文件夹的名字String
        String[] list = dir.list();
        //先判断是否为null以及是否有内容
        for (String s : list) {
            System.out.println("子文件(夹)的名字:"+s);
        }
        System.out.println("===================");
        //File[] listFiles() 获取当前目录下 每个文件及文件夹的对象形式File
        File[] files = dir.listFiles();
        for (File file : files) {
            System.out.println("查看一下每个文件的绝对路径:"+file.getAbsolutePath());
        }
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/409745.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 面向对象进阶 18 JDK8、9开始新增的方法;接口的应用;适配器设计模式;内部类(黑马)

一、JDK8开始新增的方法 默认方法不是抽象方法,所以不强制被重写: 但是如果被重写,就要去掉default关键字: public可以省略,但是default不可以省略: public是灰色的,代表可以省略 但是default是…

pclpy 最小二乘法拟合平面

pclpy 最小二乘法拟合平面 一、算法原理二、代码三、结果1.左边原点云、右边最小二乘法拟合平面后点云投影 四、相关数据 一、算法原理 平面方程的一般表达式为: A x B y C z D 0 ( C ≠ 0 ) Ax By Cz D 0 \quad (C\neq0) AxByCzD0(C0) 即: …

【深度学习笔记】3_14 正向传播、反向传播和计算图

3.14 正向传播、反向传播和计算图 前面几节里我们使用了小批量随机梯度下降的优化算法来训练模型。在实现中,我们只提供了模型的正向传播(forward propagation)的计算,即对输入计算模型输出,然后通过autograd模块来调…

Nest.js权限管理系统开发(五)返回格式化

返回格式化拦截器 在上一篇《Nest.js权限管理系统开发(四)Swagger API接入》中,我们在base.controller.ts中创建了多个接口,每个接口都有不同的返回类型。现实中我们往往需要统一返回数据的格式,例如: {&…

【零基础】VOSviewer小白入门第一课

官网安装:VOSviewer - Visualizing scientific landscapes 安装完成后即可以打开VOSviewer: 在 wos of science 中搜索关键词:lawdata 选择导出,按照plain text file格式导出,可以到处1000个。选择all record 得到下图 读取vosvi…

Linux安装jdk、tomcat、MySQL离线安装与启动

一、JDK和Tomcat的安装 1.JDK安装 直接上传到Linux服务器的,上传jdk、tomcat安装包 解压JDK安装包 //解压jdk tar -zxvf jdk-8u151-linux-x64.tar.gz 置环境变量(JAVA_HOME和PATH) vim /etc/profile 在文件末尾添加以下内容: //java environment expo…

设计模式学习笔记 - 面向对象 - 8.实践:贫血模型和充血模型的原理及实践

1.Web开发常用的贫血MVC架构违背OOP吗? 前面我们依据讲过了面向对象四大特性、接口和抽象类、面向对象和面向过程编程风格,基于接口而非实现编程和多用组合少用继承设计思想。接下来,通过实战来学习如何将这些理论应用到实际的开发中。 大部…

WiFi又演进了,这次是WiFi 7

现在很多笔记本laptop、电视TV、手机Phone,甚至车机IVI都有了WiFi和蓝牙BT的接入功能。 不管WiFi、蓝牙BlueTooth、NBIoT、ZigBee等等无线的技术、无线通信模块的技术,其本质都是在无线频谱上以某种频段某种调制方式传输某个协议的数据进行通信,所以通信标准的演进就决定着…

Linux之vim的使用详细解析

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 目录 一.vim简介 二.vim的基本概念 三.vim的基本操作 3.1准备 …

Kafka:kafka的主从模式和故障切换 ②

一、Kafka整体架构图 二、Kafka原题回答 Kafka集群有主从模式吗? Kafka集群实际上并没有严格意义上的主从模式。Kafka的设计是基于分布式的,每个Topic都会切分为多个Partition,每个Partition都有一个Leader和多个Follower。 所有的读写操作…

计算机网络面经-TCP的拥塞控制

写在前边 前边我们分享了网络分层协议、TCP 三次握手、TCP 四次分手。今天我们继续深入分享一下 TCP 中的拥塞控制。 对于 TCP 的拥塞控制,里边设计到很多细节,平平无奇的羊希望通过这一节能够将这部分内容串通起来,能够让你更深刻的记忆这部分内容。 思维导图 1、什么…

AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析

AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析 学习前言源码下载地址网络构建一、什么是Diffusion Transformer (DiT)二、DiT的组成三、生成流程1、采样流程a、生成初始噪声b、对噪声进行N次采样c、单次采样解析I、预测噪声I…

Spring的另一大的特征:AOP

目录 AOP (Aspect Oriented Programming)AOP 入门案例(注解版)AOP 工作流程——代理AOP切入点表达式AOP 通知类型AOP通知获取数据获取切入点方法的参数获取切入点方法返回值获取切入点方法运行异常信息 百度网盘分享链接输入密码数…

【Linux基础】Linux自动化构建工具make/makefile

背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后…

性格正直的人适合什么职业?

有信仰,有责任,有骨气,有尊严,这应该是大多数人对正直的人的理解,他们的心中有信仰,肩上有责任,灵魂有骨气,头上有尊严,不管在什么时候都能够坚守道德准则,不…

【文生视频】Diffusion Transformer:OpenAI Sora 原理、Stable Diffusion 3 同源技术

文生视频 Diffusion Transformer:Sora 核心架构、Stable Diffusion 3 同源技术 提出背景变换器的引入Diffusion Transformer (DiT)架构Diffusion Transformer (DiT)总结 OpenAI Sora 设计思路阶段1: 数据准备和预处理阶段2: 架构设计阶段3: 输入数据的结构化阶段4: …

蓝桥杯算法赛 第 6 场 小白入门赛 解题报告 | 珂学家 | 简单场 + 元宵节日快乐

前言 整体评价 因为适逢元宵节,所以这场以娱乐为主。 A. 元宵节快乐 题型: 签到 节日快乐,出题人也说出来自己的心愿, 祝大家AK快乐! import java.util.Scanner;public class Main {public static void main(String[] args) {System.out.println(&qu…

信息抽取(UIE):使用自然语言处理技术提升证券投资决策效率

一、引言 在当今快速变化的证券市场中,信息的价值不言而喻。作为一名资深项目经理,我曾领导一个关键项目,旨在通过先进的信息抽取技术,从海量的文本数据中提取关键事件,如企业并购、新产品发布以及政策环境的变动。这些…

学会字符转换

字符转换 题目描述:解法思路:解法代码:运行结果: 题目描述: 输入⼀一个字符串,将字符串中大写字母全部转为小写字母,小写字母转成大写字母,其他字符保持不变。注:字符串…

typescript使用解构传参

看下面这个函数 interface Student {id: number;name: string;class: string;sex: string;}function matriculation(student: Student) {//...}我们要调用它,就需要传递一个实现了Student约束的对象进去 interface Student {id: number;name: string;class: string;sex: string…