Java File类的简单使用
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 类的使用方法详解
Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看 ...
- Java File 类的使用方法详解(转)
转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- Java File类 mkdir 不能创建多层目录
File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) {boolean re ...
- Java File类基础解析 1
Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...
- JAVA File类 分析(三)
前面两篇与大家一起研究了unix下的文件系统,本篇将和大家一起分析 文件的属性和文件夹. ok,废话不说,先来段代码 #include <stdio.h> #include <sys ...
- Java File类常用方法及实例
创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false. createTempFile(String prefix, String s ...
- java File 类对操作系统文件目录进行操作:增删查
File类 1,概述 File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成. 2,构造方法 public File(Strin ...
- Java File类基本操作
我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...
随机推荐
- Spring Cloud注册中心之Zookeeper
zookeeper可以作为分布式服务的注册中心 在服务端安装zookeeper 参考:https://www.cnblogs.com/conly/p/12267506.html 创建spring bo ...
- Java并发编程 - Runnbale、Future、Callable 你不知道的那点事(二)
Java并发编程 - Runnbale.Future.Callable 你不知道的那点事(一)大致说明了一下 Runnable.Future.Callable 接口之间的关系,也说明了一些内部常用的方 ...
- Docker学习第二天(Docker容器管理)
简介 emmmm Docker 容器管理 推荐文章:容器技术概述 run里面的子选项 1.使用run命令创建容器 docker container run -it ubuntu /bin/bash / ...
- 面试官:小伙子,给我说一下mysql 乐观锁和悲观锁吧
悲观锁介绍 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态.悲观锁的实现,往往依靠数据库 ...
- 微课制作软件Camtasia中如何添加并编辑字幕?
除了能录制视频以外,Camtasia还能直接把录制下来的视频进行剪辑,并添加视频字幕等等一些后期效果.今天我们就来看一看字幕的添加方法. 导入视频 微课制作软件Camtasia录制的视频,默认在软件& ...
- 安装Ubuntu时到底该如何分区
安装系统:Ubuntu16.04(单系统) /(根分区),主分区, Ext4文件系统,100G-200G /boot分区, 逻辑分区,Ext4文件系统,~200MB /home分区, 逻辑分区 ...
- spring中的事务传播机制
1.事务的实现思想 在spring中要想某个方法具有事务,只要在方法前加一个@Transactional注解.然后spring就会利用aop思想,在这个方法执行前开启事务, 在方法执行后选择提交事务或 ...
- day008|python之函数
函数 目录 函数 1 Type hinting 2 函数参数 2.1 概述 2.2 参数详解 2.3 参数的使用 2.4 可变长函数-->*与**的应用 2.6 命名关键字形参 3 函数对象 3 ...
- uniapp自定义picker城市多级联动组件
uniapp自定义picker城市多级联动组件 支持多端--h5.app.微信小程序.支付宝小程序... 支持自定义配置picker插件级数 支持无限级 注意事项:插件传入数据格式为children树 ...
- 聊聊ReentrantLock实现原理
ReentrantLock 是常用的锁,相对于Synchronized ,lock锁更人性化,阅读性更强 从LOCK切入 考虑下面的场景如果有A,B线程,同时去执行lock.lock(Lock loc ...