Java文件操作之IO流 File类的使用详解

 更新时间:2021年09月29日 09:12:36   作者:叶绿体不忘呼吸  
在java中提供有对于文件操作系统的支持,这个支持在java.io.File类中进行了定义,也就是说在整个java.io包中File类是唯一一个与文件本身操作有关的类(创建,删除,重命名)有关的类,而如果想要进行File类的操作,我们需要提供有完整的路径支持,而后可以调用相应的方法进行处理

File类概述

File类能新建、删除、重命名文件和目录,但不能访问文件内容本身,如果需要访问文件内容本身,则需要使用后续的输入/输出流。

要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

File对象可以作为参数传递给流的构造器。

常用构造器

①public File(String pathname)
以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果是相对路径,则默认相对于当前project。

File file1 = new File("hello.txt"); //相对路径
File file2 = new File("C:\\IDEA\\untitled\\file\\hi.txt"); //绝对路径

②public File(String parent,String child)
以parent为父路径,child为子路径创建File对象。

File file3 = new File("C:\\IDEA\\untitled\\", "file");

③public File(File parent,String child)
根据一个父File对象和子文件路径创建File对象

File file3 = new File("C:\\IDEA\\untitled\\", "file");
File file4 = new File(file3, "hi.txt");

常用方法

①File类的获取功能
public String getAbsolutePath():获取绝对路径
public String getPath():获取路径
public String getName():获取名称
public String getParent():获取上层文件目录路径,若无,返回null
public long length():获取文件长度(即:字节数),不能获取目录的长度
public long lastModified():获取最后一次的修改时间,毫秒值
public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
public File[] listFiles():获取指定目录下的所有文件或文件目录构成的数组

import java.io.File;

/**
 * @Author: Yeman
 * @Date: 2021-09-24-21:50
 * @Description:
 */
public class FileTest {
    public static void main(String[] args) {
        File file1 = new File("hello.txt");
        File file2 = new File("C:\\IDEA\\untitled\\file\\hi.txt");

        System.out.println(file1.getAbsolutePath());
        System.out.println(file1.getPath());
        System.out.println(file1.getName());
        System.out.println(file1.getParent());
        System.out.println(file1.length());
        System.out.println(file1.lastModified());

        System.out.println(file2.getAbsolutePath());
        System.out.println(file2.getPath());
        System.out.println(file2.getName());
        System.out.println(file2.getParent());
        System.out.println(file2.length());
        System.out.println(file2.lastModified());
    }
}

②File类的重命名功能
public boolean renameTo(File dest):把文件重命名为指定的文件路径和文件名,相当于是把真实文件转移并且重命名了

import java.io.File;

/**
 * @Author: Yeman
 * @Date: 2021-09-24-21:50
 * @Description:
 */
public class FileTest {
    public static void main(String[] args) {
        File file1 = new File("hello.txt"); //file1需要在硬盘中真实存在
        File file2 = new File("C:\\IDEA\\hi.txt"); //在硬盘中不存在file2
        boolean b = file1.renameTo(file2);
        System.out.println(b);
    }
}

③File类的判断功能
硬盘中要真实存在才能做出真实判断
public boolean isDirectory():判断是否是文件目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWrite():判断是否可写
public boolean isHidden():判断是否隐藏

④File类的创建功能
public boolean createNewFile():创建文件,若文件存在,则不创建,返回false
public boolean mkdir():创建文件目录,如果此文件目录存在,就不创建了,如果此文件目录的上层目录不存在,也不创建
public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建

⑤File类的删除功能
public boolean delete():删除文件或者文件夹
删除注意事项:Java中的删除不走回收站。要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录

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

/**
 * @Author: Yeman
 * @Date: 2021-09-24-21:50
 * @Description:
 */
public class FileTest {
    public static void main(String[] args) throws IOException {
        File file1 = new File("hello.txt");
        if (!file1.exists()){
        	//文件不存在,创建
            file1.createNewFile();
            System.out.println("创建成功");
        }else {
        	//文件存在,删除
            file1.delete();
            System.out.println("删除成功");
        }
    }
}

到此这篇关于Java文件操作之IO流 File类的使用详解的文章就介绍到这了,更多相关Java file内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java ant 配置及构建项目图文教程

    java ant 配置及构建项目图文教程

    以下是对java ant配置及构建项目进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • Spring Cloud Hystrix线程池不足的解决方法

    Spring Cloud Hystrix线程池不足的解决方法

    这篇文章主要介绍了Spring Cloud Hystrix线程池不足的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • java正则表达式匹配规则超详细总结

    java正则表达式匹配规则超详细总结

    正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别,下面这篇文章主要给大家介绍了关于java正则表达式匹配规则的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • java实现快速排序算法

    java实现快速排序算法

    快速排序算法是基于分治策略的另一个排序算法。其基本思想是:对输入的子数组a[p:r],按以下三个步骤进行排序。 1) 分解(Divide)(2) 递归求解(Conquer) (3) 合并(Merge)
    2015-04-04
  • SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码

    SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码

    本文主要介绍了SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • springboot配置logback日志管理过程详解

    springboot配置logback日志管理过程详解

    这篇文章主要介绍了springboot配置logback日志管理过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 深入了解Spring Boot2.3.0及以上版本的Liveness和Readiness功能

    深入了解Spring Boot2.3.0及以上版本的Liveness和Readiness功能

    这篇文章主要介绍了Spring Boot2.3.0及以上版本的Liveness和Readiness功能示例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • IDEA插件(BindED)之查看class文件的十六进制

    IDEA插件(BindED)之查看class文件的十六进制

    这篇文章主要介绍了IDEA插件(BindED)之查看class文件的十六进制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java编程实现递增排序链表的合并

    Java编程实现递增排序链表的合并

    这篇文章主要介绍了Java编程实现递增排序链表的合并,两种方法,代码分享给大家,供需要的朋友参考。
    2017-10-10
  • Spring Cloud 部署时使用 Kubernetes 作为注册中心和配置中心的方法

    Spring Cloud 部署时使用 Kubernetes 作为注册中心和配置中

    Spring Cloud Kubernetes提供了使用Kubernete本地服务的Spring Cloud通用接口实现,这篇文章主要介绍了Spring Cloud 部署时如何使用 Kubernetes 作为注册中心和配置中心,需要的朋友可以参考下
    2024-05-05

最新评论