File类方法1.构造方法
获取 File 类有三种形式:
1
2
3
4
5
6
|
<font style= "color:rgb(77, 77, 77)" ><font face= """ ><font style= "font-size:16px" > 1 . File(String pathName); 根据当前路径获取File对象,可以是
文件,也可以是文件夹。
2 . File(String parent, String child); 根据对应的父文件路径,
以及子文件或子文件夹名创建对应的 File 对象。
3 . File(File parent, String child); 根据对应的父目录文件夹
File类对象,以及子文件 名或者子文件夹名,创建对应File </font></font></font>
|
1
2
3
4
5
6
|
<font style= "color:rgb(77, 77, 77)" ><font face= """ ><font style= "font-size:16px" > //获取E盘创建文件文件夹下的bbb
File file = new File( "E:/创建文件/bbb" );
//获取E盘创建文件文件夹下aaa 文件夹下的 1.txt
File file2 = new File( "E:/创建文件/aaa" , "1.txt" );
//获取E盘创建文件文件夹下的bbb文件夹中的 bbb
File file3 = new File(file, "bbb" );</font></font></font>
|
2.创建方法
1
2
|
1 . boolean createNewFile(); 创建普通文件,创建成功返回 true ,失败返回 false
2 . boolean mkdir(); 创建文件夹,创建成功返回 true ,失败返回 false
|
01
02
03
04
05
06
07
08
09
10
|
//第一种获取File对象方式
File file = new File( "E:/创建文件/bbb" );
// 第三中获取方式
File file3 = new File(file, "bbb" );
//在 E:/创建文件/bbb 目录下创建 bbb 文件夹
System.out.println(file3.mkdir());
/*
* 在 E:/创建文件/bbb 目录下创建 bbb 文件
* System.out.println(file3.createNewFile());
*/
|
3.删除方法
1
2
|
1 . boolean delete(); 通过File类对象调用,删除对应的文件或者文件夹
2 . void deleteOnExit(); 程序退出时删除对应的文件或者文件夹
|
注意:
删除的文件或者文件夹都是直接抹除数据并非放入回收站内
不能删除非空的文件夹
4.判断文件属性
方法 作用
boolean isFile(); 判断是否是一个普通文件
boolean isDirctory(); 判断是否是一个文件夹
boolean isAbsolute(); 判断是否使用了绝对路径
boolean isHidden(); 判断是否是隐藏文件
boolean exists(); 判断文件是否存在
5.获取文件属性
方法 作用
String getPath(); 获取File类对象保存的路径
String getName(); 获取当前File类对象中保存的文件名或者文件夹名
String getParent(); 获取当前File类对象对应文件或者文件夹的父目录路径
String getAbsolutePath(); 获取当File类对象对应文件或者文件夹的绝对路径
long lastModified() 获取文件的最后一次修改时间
long length(); 获取文件的大小,占用硬盘空间字节数
以上方法的前4个方法哪怕对应文件不存在也不会报错
列表方法
方法 作用
static File[] listRoots(); 获 取当前电脑内所有根盘符对象 (针对windows操纵系统)
File[] listFiles(); 当前File类对象对应文件夹 下的所有子文件或者子文件夹
String[] list(); 当前File类对象对应文件夹 下的所有子文件或者子文件夹的String类型文件名或者文件 夹名字
假设我的E盘创建文件文件夹下有一个bbb文件。
01
02
03
04
05
06
07
08
09
10
11
|
File file = new File( "E:/创建文件" );
String[] listFiles = file.list();
for (String files : listFiles) {
//此处只输出文件名 如 bbb(路径E:/创建文件/bbb)
System.out.println(files);
}
File[] listFiles2 = file.listFiles();
for (File files : listFiles2) {
//此处输出E:\创建文件\bbb
System.out.println(files);
}
|
案例
如果在某路径下有一堆文件,现在让你将这些文件进行分类(比如txt文件,放在TXT文件夹下;ppt文件放在PPT文件夹下…)
代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// 目标文件夹的File类对象
File file = new File( "E\\创建文件" );
// 需要创建的文件夹类对象
File toBeCreateDir = null ;
// 判断是否是文件夹
if (!file.isDirectory()) {
return ;
}
// 当前文件夹已经归档完成,不需要再次归档
if ( new File(file, "1.lock" ).exists()) {
System.out.println( "已经归档完成" );
return ;
}
// 当前文件夹下的所有子文件和子文件夹的File类对象数组
File[] listFiles = file.listFiles();
// 遍历File类对象数组
for (File srcFile : listFiles) {
// 如果是普通文件,获取文件后缀名
if (srcFile.isFile()) {
String fileName = srcFile.getName();
/
* substing( int i);截取从i位置开始的字符串
* lastIndexOf( int ch) 字符最后出现的位置
* toUpperCase();转为大写字符
*/
String upperSuffix = fileName.substring(fileName.lastIndexOf( '.' ) + 1 )
.toUpperCase();
toBeCreateDir = new File(file, upperSuffix);
} else {
toBeCreateDir = new File(file, "subDir" );
}
// 创建文件夹
toBeCreateDir.mkdir();
// 移动文件或者文件夹
srcFile.renameTo( new File(toBeCreateDir, srcFile.getName()));
}
// 创建一个锁文件
new File(file, "1.lock" ).createNewFile();
|