Java File类的简单使用教程(创建、删除、遍历与判断是否存在等)

前言

Java文件类以抽象的方式代表文件名和目录路径名。该类本身不能用来读数据或写数据,它主要用于磁盘上文件和目录的创建、文件的查找和文件的删除。做一些非读写方面的工作,比如看看文件是否存在、是否可读写及遍历文件目录等等。要想读写数据,必须和其它io流的类配合使用,比如FileInputStream、FileOutputStream等。File对象代表磁盘中实际存在的文件和目录,以下就通过一些简单的列子介绍File的基本使用。

这是整个File简单使用的代码:

1 package com.tianjh;
 2
 3 import java.io.File;
 4 import java.io.IOException;
 5
 6 /**
 7 * Created on 2020/12/10
 8 * File类的基本使用
 9 *
 10 */
 11 public class FileDemo {
 12 public static void main(String[] args) {
 13 String dirname = "D:/Demo";
 14 // 实例化一个File对象
 15 File f1 = new File(dirname);
 16
 17 // 1. 遍历指定目录之下的所有文件
 18 // 判断f1对象是否是一个目录
 19 if (f1.isDirectory()) {
 20 System.out.println("Directory of " + dirname);
 21 String[] s = f1.list();
 22 // 遍历s数组,取出数组中的元素进行判断
 23 for (int i = 0; i < s.length; i++) {
 24  File f = new File(dirname + "/" + s[i]);
 25  if (f.isDirectory()) {
 26  System.out.println(s[i] + " is a directory");
 27  } else {
 28  System.out.println(s[i] + " is a file");
 29  }
 30 }
 31 } else {
 32 // 不是一个目录
 33 System.out.println(dirname + " is not a directory");
 34 }
 35 // expected output:
 36 // Directory of D:/Demo
 37 // BufferedInputStream.java is a file
 38 // BufferedOutputStream.java is a file
 39 // childFile is a directory
 40
 41 /*
 42 * 2. 测试指定文件是否可执行
 43 * 测试应用程序是否可以执行此抽象路径名表示的文件
 44 * true: 当且仅当存在抽象路径名,并允许应用程序执行该文件时
 45 */
 46 System.out.println(dirname + " allowed to execute? " + f1.canExecute());
 47 // expected output: D:/Demo allowed to execute? true
 48
 49
 50 /*
 51 * 3. 测试指定文件是否可读取
 52 * 测试应用程序是否可以读取由此抽象路径名表示的文件
 53 * true: 当且仅当此抽象路径名指定的文件存在并可由应用程序读取时;
 54 * false: 与true相反
 55 */
 56 System.out.println(dirname + " allowed to read? " + f1.canRead());
 57 // expected output: D:/Demo allowed to read? true
 58
 59 /*
 60 * 4. 测试指定文件是否可写
 61 * 测试应用程序是否可以修改由此抽象路径名表示的文件
 62 * true: 当且仅当文件系统实际上包含由该抽象路径名表示的文件并且允许应用程序写入该文件时;
 63 * false: 与true相反
 64 */
 65 System.out.println(dirname + " allowed to write? " + f1.canWrite());
 66 // expected output: D:/Demo allowed to write? true
 67
 68 /*
 69 * 5. 比较抽象路径名和参数抽象路径名是否相等
 70 * 比较两个抽象的路径名字典是否相等 等于零则相等,小于零则抽象路径名字典小于参数路径字典,大于则相反
 71 * 比较规则按照字典顺序进行排序
 72 */
 73 String s1 = "C:/Boot";
 74 // “D:/Demo” 与 "C:/Boot" 比较
 75 System.out.println(f1.compareTo(new File(s1)));
 76 // expected output: 1
 77 String s2 = "D:/Deoo";
 78 // “D:/Demo” 与 "D:/Deoo" 比较
 79 System.out.println(f1.compareTo(new File(s2)));
 80 // expected output: -2
 81
 82
 83 /*
 84 * 6. 创建一个新文件
 85 * 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件
 86 * true: 如果命名文件不存在并被成功创建;
 87 * false: 如果命名文件已经存在
 88 */
 89 File f3 = new File("/Boot");
 90 try {
 91 System.out.println("/Boot file is created? " + f3.createNewFile());
 92 // expected output: /Boot file is created? false
 93 } catch (IOException e) {
 94 e.printStackTrace();
 95 }
 96
 97 /*
 98 * 7. 创建一个目录
 99 * 创建由此抽象路径名命名的目录
100 */
101 String dirnames = "D:/tmp/boot";
102 File f4 = new File(dirnames);
103 // 创建一个文件夹,成功则返回true,失败则返回false。
104 // 失败表明File对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被创建。
105 System.out.println("create mkdir is " + f4.mkdir());
106 // expected output: create mkdir is true
107
108
109 /*
110 * 8. 创建一个目录,包括其不存在的父级目录
111 * 创建一个文件夹和它的所有父文件夹 失败表明File对象指定的路径已经存在
112 */
113 System.out.println("create mkdirs is " + f4.mkdirs());
114 // expected output: create mkdirs is false
115
116
117 /*
118 * 9. 删除文件或者目录
119 * 删除由此抽象路径名表示的文件或目录
120 * true当且仅当文件或目录被成功删除时; false否则
121 */
122 System.out.println(dirnames + " deleted is " + f4.delete());
123 // expected output: D:/tmp/boot deleted is true
124
125
126 /*
127 * 10. 取得抽象路径的名称
128 * 取到抽象路径名表示的文件或目录的名称
129 */
130 System.out.println("getName is " + f1.getName());
131 // expected output: getName is Demo
132
133
134 /*
135 * 11. 取得抽象路径的字符串
136 * 获得由抽象路径名转换为路径名字符串
137 */
138 System.out.println("getPath is " + f1.getPath());
139 // expected output: getPath is D:\Demo
140
141 /*
142 * 12. 取得抽象路径的绝对路径
143 * 获得此抽象路径名的绝对路径名字符串
144 */
145 System.out.println("Absolute Path is " + f1.getAbsolutePath());
146 // expected output: Absolute Path is D:\Demo
147
148
149 /*
150 * 13. 判断抽象路径指定的文件或目录是否存在
151 * 测试此抽象路径名表示的文件或目录是否存在
152 * true: 当且仅当存在由此抽象路径名表示的文件或目录时;
153 * false: 与true相反
154 */
155 System.out.println(f1.exists() ? "exist" : "not");
156 // expected output: exist
157 }
158
159 }

FileDemo.Java

下面分别介绍常用的几种方法:

1、遍历指定目录之下的所有文件( 遍历" D:/Demo "中的所有文件及目录)

D磁盘中Demo目录的结果如下所示:

示例代码:

String dirname = "D:/Demo";
 // 实例化一个File对象
 File f1 = new File(dirname);

 // 1. 遍历指定目录之下的所有文件
 // 判断f1对象是否是一个目录
 if (f1.isDirectory()) {
  System.out.println("Directory of " + dirname);
  String[] s = f1.list();
  // 遍历s数组,取出数组中的元素进行判断
  for (int i = 0; i < s.length; i++) {
  File f = new File(dirname + "/" + s[i]);
  if (f.isDirectory()) {
   System.out.println(s[i] + " is a directory");
  } else {
   System.out.println(s[i] + " is a file");
  }
  }
 } else {
  // 不是一个目录
  System.out.println(dirname + " is not a directory");
 }
 // expected output:
 // Directory of D:/Demo
 // BufferedInputStream.java is a file
 // BufferedOutputStream.java is a file
 // childFile is a directory

输出结果:

2、测试指定文件是否可执行

/*
  * 2. 测试指定文件是否可执行
  * 测试应用程序是否可以执行此抽象路径名表示的文件
  * true: 当且仅当存在抽象路径名,并允许应用程序执行该文件时
  */
 System.out.println(dirname + " allowed to execute? " + f1.canExecute());
 // expected output: D:/Demo allowed to execute? true

3、测试指定文件是否可读取

/*
  * 3. 测试指定文件是否可读取
  * 测试应用程序是否可以读取由此抽象路径名表示的文件
  * true: 当且仅当此抽象路径名指定的文件存在并可由应用程序读取时;
  * false: 与true相反
  */
 System.out.println(dirname + " allowed to read? " + f1.canRead());
 // expected output: D:/Demo allowed to read? true

4、测试指定文件是否可写

/*
  * 4. 测试指定文件是否可写
  * 测试应用程序是否可以修改由此抽象路径名表示的文件
  * true: 当且仅当文件系统实际上包含由该抽象路径名表示的文件并且允许应用程序写入该文件时;
  * false: 与true相反
  */
 System.out.println(dirname + " allowed to write? " + f1.canWrite());
 // expected output: D:/Demo allowed to write? true

样例2、3、4的结果可参考Demo 的属性

5、比较抽象路径名和参数抽象路径名是否相等,根据字典顺序进行比较

/*
  * 5. 比较抽象路径名和参数抽象路径名是否相等
  * 比较两个抽象的路径名字典是否相等 等于零则相等,小于零则抽象路径名字典小于参数路径字典,大于则相反
  * 比较规则按照字典顺序进行排序
  */
 String s1 = "C:/Boot";
 // “D:/Demo” 与 "C:/Boot" 比较
 System.out.println(f1.compareTo(new File(s1)));
 // expected output: 1
 String s2 = "D:/Deoo";
 // “D:/Demo” 与 "D:/Deoo" 比较
 System.out.println(f1.compareTo(new File(s2)));
 // expected output: -2

结果:

6、创建一个新文件

/*
  * 6. 创建一个新文件
  * 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件
  * true: 如果命名文件不存在并被成功创建;
  * false: 如果命名文件已经存在
  */
 File f3 = new File("/Boot");
 try {
  System.out.println("/Boot file is created? " + f3.createNewFile());
  // expected output: /Boot file is created? false
 } catch (IOException e) {
  e.printStackTrace();
 }

结果:

7、创建一个目录

/*
  * 7. 创建一个目录
  * 创建由此抽象路径名命名的目录
  */
 String dirnames = "D:/tmp/boot";
 File f4 = new File(dirnames);
 // 创建一个文件夹,成功则返回true,失败则返回false。
 // 失败表明File对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被创建。
 System.out.println("create mkdir is " + f4.mkdir());
 // expected output: create mkdir is true

结果:

8、创建一个目录,包括其不存在的父级目录,因为在上列中创建了对应的目录文件,所有mkdirs创建就返还false

/*
 * 8. 创建一个目录,包括其不存在的父级目录
 * 创建一个文件夹和它的所有父文件夹 失败表明File对象指定的路径已经存在
 */
System.out.println("create mkdirs is " + f4.mkdirs());
// expected output: create mkdirs is false

9、删除文件或者目录(删除前面创建的/tmp路径下的boot)

/*
  * 9. 删除文件或者目录
  * 删除由此抽象路径名表示的文件或目录
  * true当且仅当文件或目录被成功删除时; false否则
  */
 System.out.println(dirnames + " deleted is " + f4.delete());
 // expected output: D:/tmp/boot deleted is true

结果:

10、取得抽象路径的名称

/*
  * 10. 取得抽象路径的名称
  * 取到抽象路径名表示的文件或目录的名称
  */
 System.out.println("getName is " + f1.getName());
 // expected output: getName is Demo

结果:

11、取得抽象路径的字符串

/*
  * 11. 取得抽象路径的字符串
  * 获得由抽象路径名转换为路径名字符串
  */
 System.out.println("getPath is " + f1.getPath());
 // expected output: getPath is D:\Demo

结果:

12、取得抽象路径的绝对路径

/*
  * 12. 取得抽象路径的绝对路径
  * 获得此抽象路径名的绝对路径名字符串
  */
 System.out.println("Absolute Path is " + f1.getAbsolutePath());
 // expected output: Absolute Path is D:\Demo

结果:

13、判断抽象路径指定的文件或目录是否存在

/*
  * 13. 判断抽象路径指定的文件或目录是否存在
  * 测试此抽象路径名表示的文件或目录是否存在
  * true: 当且仅当存在由此抽象路径名表示的文件或目录时;
  * false: 与true相反
  */
 System.out.println(f1.exists() ? "exist" : "not");
 // expected output: exist

结果:

到此这篇关于Java File类简单使用(创建、删除、遍历与判断是否存在等)的文章就介绍到这了,更多相关Java File类简单使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    简单看一下描述,例子最重要. 1.getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 2.getAbsolutePath(): 返回绝对路径,但不会处理"."和".."的情况 3.getCanonicalPath(): 返回的是规范化的绝对路径,相当于将getAbsolutePath()中的"."和".."解析成对应的正确的路径 第一个例子:(使用:".\\src\\test.txt&qu

  • Java中File类中常用方法详解

    java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 package pack01; import java.io.*; import java.sql.Date; public class FileTest { public static void main(String[] args) { File file1 = new File("d:/TEST

  • Java File类的常用方法总结

    Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一下. 构造函数 复制代码 代码如下: public class FileDemo {      public static void main(String[] args){          //构造函数File(String pathname)          File f1 =new Fi

  • java中File类的使用方法

    构造函数 复制代码 代码如下: public class FileDemo {     public static void main(String[] args){         //构造函数File(String pathname)         File f1 =new File("c:\\abc\\1.txt");         //File(String parent,String child)         File f2 =new File("c:\\a

  • Java使用File类遍历目录及文件实例代码

    1. 构造函数 File(String args0)//使用一个表示文件或目录的路径的字符串创建一个File对象 File(URL args0)//使用一个URL对象创建File对象 File(File args0, String args1)//使用一个File对象(一般是目录)和一个文件名字符串创建File对象 File(String args0, String args1)//使用一个目录字符串和一个文件名字符串创建对象 使用File类需要注意两点: 第一,File类用于表示文件或目录的名

  • java中File类的构造函数及其方法

    1.IO流(Input Output) IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中 2.IO流技术的运用场景 导出报表.上传大头照.下载.解析xml文件.....等等 (数据保存到硬盘,该数据可以做到永久性保存.数据一般以文件的形式保存到硬盘上.sun使用一个File类来描述文件或者文件夹) 3.File类的构造函数(方法) File(String pathname)

  • java中File类应用遍历文件夹下所有文件

    本文要求遍历指定文件夹下的所有文件,包括子文件夹下的文件,供大家参考,具体内容如下 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public static void main(String[] args){ File file=new File("D:\\tcb\\周总结"); filesDirs(file); } //使用递归遍历文件夹及子文件夹中文件 public static void files

  • Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象.  CanWrite():返回文件是否可写. CanRead():返回文件是否可读. CompareTo(File pathname):检查指定文件路径间的顺序. Delet():从文件系统内删除该文件. DeleteOnExit():程序顺利结束时从系统中删除文件. Equals(Object obj):检查特定对象的路径名是否相等. Exists():判断文件夹是否存在. GetA

  • java File类的基本使用方法总结

    Java IO中File的使用是比较频繁的,在文件的上传和删除中都会用到的.比如我们在写管理系统的时候有可能会用到图片的上传,和删除.那么我们就会用到Java的 File来处理. Java中File的基本使用创建和删除文件: public class FileDemo { public static void main(String[] args) { File f=new File("d:"+File.separator+"io.txt"); //File.sep

  • java中表示一个文件的File类型详解

    前言 从本篇文章开始,我们将开启对 Java IO 系统的学习,本质上就是对文件的读写操作,听上去简单,其实并不容易.Java 的 IO 系统一直在完善和改进,设计了大量的类,也只有理解了这些类型被设计出来的意义以及各自的应用场景,才能提升文件 IO 的理解. 那么,第一步就是要解决如何表示一个文件的问题,Java 世界中「万物皆对象」,如何将一个实际磁盘文件或目录对应到一个 Java 对象则是我们首要的问题. Java 中使用 File 来抽象一个文件,无论是普通文件或是目录,都可对应于一个

随机推荐