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类使用方法请查看下面的相关链接

相关文章

  • Spring Boot利用Lombok减少Java中样板代码的方法示例

    Spring Boot利用Lombok减少Java中样板代码的方法示例

    spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,下面这篇文章主要给大家介绍了关于Spring Boot利用Lombok减少Java中样板代码的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • JDK基于CAS实现原子类盘点解析

    JDK基于CAS实现原子类盘点解析

    这篇文章主要为大家介绍了JDK基于CAS实现原子类盘点解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • JAVA Vector源码解析和示例代码

    JAVA Vector源码解析和示例代码

    本文的学习方式是先对JAVA Vector有个整体认识,然后再学习它的源码,最后再通过实例来学会使用。
    2013-11-11
  • java支付宝即时到帐提交订单功能

    java支付宝即时到帐提交订单功能

    这篇文章主要为大家详细介绍了java支付宝即时到帐提交订单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • java中数组的相关知识小结(推荐)

    java中数组的相关知识小结(推荐)

    下面小编就为大家带来一篇java中数组的相关知识小结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • RabbitMQ中的channel信道、exchange交换机和queue队列详解

    RabbitMQ中的channel信道、exchange交换机和queue队列详解

    这篇文章主要介绍了RabbitMQ中的channel信道、exchange交换机和queue队列详解,connection是指物理的连接,一个client与一个server之间有一个连接,一个连接上可以建立多个channel,可以理解为逻辑上的连接,需要的朋友可以参考下
    2023-08-08
  • 一文详解Spring security框架的使用

    一文详解Spring security框架的使用

    Spring Security是一个基于Spring框架的安全认证和授权框架,它提供了一套全面的安全解决方案,可以在Web应用、移动应用和Web服务等不同场景下使用。本文就来详细聊聊它的使用吧
    2023-03-03
  • Java读取.properties配置文件的几种方式

    Java读取.properties配置文件的几种方式

    这篇文章主要介绍了Java读取.properties配置文件的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 记一次Feign中实现传实体Bean的问题

    记一次Feign中实现传实体Bean的问题

    这篇文章主要介绍了记一次Feign中如何传实体Bean的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • springboot如何实现异步响应请求(前端请求超时的问题解决)

    springboot如何实现异步响应请求(前端请求超时的问题解决)

    这篇文章主要给大家介绍了关于springboot如何实现异步响应请求(前端请求超时的问题解决)的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用springboot具有一定的参考学习价值,需要的朋友可以参考下
    2023-01-01

最新评论