java开发之File类详细使用方法介绍

 更新时间:2020年02月19日 15:08:31   作者:我是java小学渣  
这篇文章主要介绍了java开发之File类详细使用方法介绍,需要的朋友可以参考下

File类简介

在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。

File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。

File类的相关方法

1、构造方法

File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

File(String parent,String child) 根据指定的父路径和文件路径创建一个新File对象实例

File(File parent,String child) 根据指定的父路径对象和文件路径创建一个新的File对象实例

代码实现过程

/*
 - File的构造函数
 - */
 public static void main(String[] args) {
  //File(String pathname) 将指定路径名转换成一个File对象
  File file = new File("D:\\1.txt");
  System.out.println(file);
  //File(String parent,String child) 根据指定的父路径和文件路径创建File对象
  File file1 = new File("D:\\a","1.txt");
  System.out.println(file1);
  //File(File parent,String child) 根据指定的父路径对象和文件路径创建File对象
  File parent = new File("D:\\a");
  File file2 = new File(parent, "1.txt");
  System.out.println(file2);
  File file3 = new File(new File("D:\\a"),"1.txt");
  System.out.println(file3);

 }

运行结果

2、File类创建和删除功能

boolean createNewFile();指定路径不存在该文件时创建文件,返回true 否则false

boolean mkdir() 当指定的单击文件夹不存在时创建文件夹并返回true 否则false

boolean mkdirs() 但指定的多级文件夹在某一级文件夹不存在时,创建多级文件夹并返回true 否则false

boolean delete() 删除文件或者删除单级文件夹

删除文件夹,这个文件夹下面不能有其他的文件和文件夹

代码实现过程

public static void main(String[] args) throws IOException {
 File file = new File("D:\\a\\1.txt");
 File file1 = new File("1.txt");
 boolean flag = file1.createNewFile();
 System.out.println(flag);

 File file2 = new File("b");
 boolean flag2 = file2.mkdir();
 System.out.println(flag);

 File file3 = new File("c\\d\\e");
 boolean d = file1.mkdir();
 boolean c = file1.mkdirs();
 System.out.println(d);
 System.out.println(c);
 File file4 = new File("c.txt");
 System.out.println(file4.mkdir());

 File file5 = new File("b");
 System.out.println(file2.delete());
}

运行结果

3、File类的判断功能

boolean exists() 判断指定路径的文件或文件夹是否为空

boolean isAbsolute() 判断当前路径是否是绝对路径

boolean isDirectory() 判断当前的目录是否存在

boolean isFile() 判断当前的目录是否是一个文件

boolean isHidden() 判断当前路径是否是一隐藏文件

代码实现过程

public static void main(String[] args) throws IOException {
 // method();
 // method2();
 // method3();
 // method4();
}
//判断文件是否存在
public static void method() throws IOException {
 File file = new File("a.txt");
 file.createNewFile();
 boolean flag = file.exists();
 System.out.println(flag);
}
//判断当前路径是否为绝对路径
public static void method2() throws IOException{
 File file = new File("D:\\a\\1.txt");
 boolean flag = file.isAbsolute();
 System.out.println(flag);
}
//判断当前是文件夹还是文件
public static void method3() throws IOException{
 File file = new File("1.txt");
 File file1 = new File("b");
 file1.mkdir();
 boolean flag = file.isDirectory();
 boolean flag2 = file1.isFile();
 System.out.println(flag);
 System.out.println(flag2);
}
//判断当前路径是否为隐藏文件
public static void method4() throws IOException{
 File file = new File("D:\\a\\1.txt");
 System.out.println(file.isHidden());
}

运行结果

method()

method2()

method3()

method4()

4、File类的获取功能和修改名字功能

File getAbsoluteFile() 获取文件的绝对路径,返回File对象

String getAbsolutePath() 获取文件的绝对路径,返回路径的字符串

String getParent() 获取当前路径的父级路径,以字符串形式返回该父级路径

String getName() 获取文件或文件夹的名称

String getPath() 获取File对象中封装的路径

long lastModified() 以毫秒值返回最后修改时间

long length() 返回文件的字节数

boolean renameTo(File dest) 将当前File对象所指向的路径修改为指定File所指向的路径

代码实现过程:

public static void main(String[] args) throws IOException {
 // method();
 // method2();
 // method3();
 // method4();
}
public static void method(){
 File file = new File("D:\\a\\1.txt");
 File file1 = new File("1.txt");
 //以File对象返回的形式返回当前File对象所指向的绝对路径
 System.out.println(file1.getAbsoluteFile());
 //返回File对象所指向的绝对路径
 System.out.println(file1.getAbsolutePath());
}
public static void method2() throws IOException {
 File file = new File("a.txt");
 File file1 = new File("b","c.txt");
 System.out.println(file1.createNewFile());

 File parent = new File("b");
 File file2 = new File(parent,"c.txt");
 if (!parent.exists()){
  parent.mkdirs();
 }
 System.out.println(file2.createNewFile());
 System.out.println(file2.getParent());
 System.out.println(file2.getParentFile());
}
public static void method3() throws IOException{
 File file = new File("1.txt");
 File file1 = new File("D:\\a\\1.txt");
 File file2 = new File("b");

 System.out.println(file.getName());
 System.out.println(file1.getName());
 System.out.println(file2.getName());

 System.out.println(file.getPath());
 System.out.println(file1.getPath());
 System.out.println(file2.getPath());

 System.out.println(file.lastModified());
 Date date = new Date(1556085068524L);
 System.out.println(date.toLocaleString());

 System.out.println(file.length());
 System.out.println(file2.length());
}
public static void method4() throws IOException{
 File file = new File("a.txt");
 File file1 = new File("e.txt");
 System.out.println(file.renameTo(file1));
}

运行结果

method()

method2()

method3()

method4()

5、File 类的其他获取功能

String[] list(); 以字符串的形式返回当前路径下所有的文件和文件夹的名称

File[] listFile 以File对象的形式返回当前路径下的所有文件和文件夹名称

Static File[] listRoots() 获取计算机中的所有盘符

代码实现过程

public static void main(String[] args) {
 //method();
 // method2();
 //method3();
}

public static void method(){
 File file = new File("b");
 File file1 = new File("D:\\QQ\\1916247350");
 File file2 = new File("e.txt");
 String[] files = file1.list();
 for (int i=0;i<files.length;i++){
  System.out.println(files[i]);
 }
}
public static void method2(){
 File file = new File("b");
 File file1 = new File("D:\\QQ\\1916247350");
 File file2 = new File("e.txt");

 File[] files = file1.listFiles();
 for (File file3 : files) {
  System.out.println(file3.getName());
 }
}
public static void method3(){
 File[] files = File.listRoots();
 for (File file : files) {
  System.out.println(file);
 }
}

运行结果

method()

method2()

method(3)

练习

1、输出指定目录下的所有java文件

public static void main(String[] args) {
 File file = new File("D:\\IDEA\\IDEAprogram");
 method(file);
}
public static void method(File file){
//判断文件是够是目录文件
 if (file.isDirectory()){
  File[] files = file.listFiles();
  for (File file1 : files) {
  //判断是否为文件
   if (file1.isFile()){
   //判断文件是否是以.java结尾的文件
    if (file1.getName().endsWith(".java")){
     System.out.println(file1.getName());
    }
   }else if (file1.isDirectory()){ 
   //回调,遍历file1
    method(file1);
   }
  }
 }
}

运行结果

2、删除指定的目录(包括子目录)

public static void main(String[] args) {
 File file = new File("D:\\a");
 method(file);
}
//删除指定目录下的文件
public static void method(File file){
 //删除自己所有的子文件和子目录
 //获取子文件和子目录
 if (file.isDirectory()){
  File[] files = file.listFiles();
  for (File file1 : files) {
   if (file1.isFile()){
    System.out.println(file1.getName());
    //干掉它
    file1.delete();
   }else if (file1.isDirectory()){
    //继续查看
    method(file1);
   }
  }
  //干掉自己
  System.out.println(file.getName());
  file.delete();
 }
}

代码运行结果

本文介绍了java开发过程中File类的详细使用方法,更多关于File类使用方法请查看下面的相关链接

相关文章

  • mybatis-plus Wrapper条件构造器updateForSet更新方式

    mybatis-plus Wrapper条件构造器updateForSet更新方式

    这篇文章主要介绍了mybatis-plus Wrapper条件构造器updateForSet更新方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 详解Spring注解@Autowired的实现原理和使用方法

    详解Spring注解@Autowired的实现原理和使用方法

    在使用Spring开发的时候,配置的方式主要有两种,一种是xml的方式,另外一种是 java config的方式,在使用的过程中,我们使用最多的注解应该就是@Autowired注解了,所以本文就给大家讲讲@Autowired注解是如何使用和实现的,需要的朋友可以参考下
    2023-07-07
  • Java如何正确处理下载文件时HTTP头的编码问题

    Java如何正确处理下载文件时HTTP头的编码问题

    这篇文章主要介绍了Java如何正确处理下载文件时HTTP头的编码问题,
    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息,今天来讲解下正确处理下载文件时HTTP头的编码问题,需要的朋友可以参考下
    2023-07-07
  • Spring Boot+Vue实现Socket通知推送的完整步骤

    Spring Boot+Vue实现Socket通知推送的完整步骤

    最近工作中涉及消息通知功能的开发,所以下面这篇文章主要给大家介绍了关于Spring Boot+Vue实现Socket通知推送的完整步骤,文中通过实例代码以及图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • springCloud项目搭建流程步骤分解

    springCloud项目搭建流程步骤分解

    SpringCloud 作为当下最为流行的微服务框架,也越来越多的人去学习和使用这个框架。下面,我将带大家简单地认识一下 SpringCloud 框架,以及如何来搭建一个 SpringCloud 项目环境的教程
    2022-05-05
  • SpringCloud Gateway路由组件详解

    SpringCloud Gateway路由组件详解

    SpringCloud Gateway 是 Spring Cloud 的一个全新项目,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。这篇文章主要介绍了SpringCloud Gateway网关作用,需要的朋友可以参考下
    2023-02-02
  • Java使用设计模式中迭代器模式构建项目的代码结构示例

    Java使用设计模式中迭代器模式构建项目的代码结构示例

    这篇文章主要介绍了Java使用设计模式中迭代器模式构建项目的代码结构示例,迭代器模式能够对访问者隐藏对象的内部细节,需要的朋友可以参考下
    2016-05-05
  • java计算π的多种方法

    java计算π的多种方法

    这篇文章主要介绍了使用java计算π的多种方法,代码详细,逻辑清晰,对于算法思路可能有所帮助,需要的朋友可以参考下
    2021-04-04
  • 详解Spring AOP的实现方式

    详解Spring AOP的实现方式

    AOP是一种思想,是对某一类事情的集中处理,切面就是指某一类特定的问题,所以AOP可以理解为面向特定方法编程,这篇文章主要介绍了Spring AOP的实现方式,需要的朋友可以参考下
    2024-02-02
  • Java实现List去重的方法详解

    Java实现List去重的方法详解

    本文用示例介绍Java的List(ArrayList、LinkedList等)的去重的方法。List去重的常用方法一般是:JDK8的stream的distinct、转为HashSet、转为TreeSet等,感兴趣的可以了解一下
    2022-05-05

最新评论