java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。
File类的常见构造方法:public File(String pathname)
以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储,如示例所示。
【示例】文件的创建
1
2
3
4
5
6
7
8
9
10
|
import
java.io.File;
public
class
TestFile1 {
public
static
void
main(String[] args)
throws
Exception {
System.out.println(System.getProperty(
"user.dir"
));
File f =
new
File(
"a.txt"
);
//相对路径:默认放到user.dir目录下面
f.createNewFile();
//创建文件
File f2 =
new
File(
"d:/b.txt"
);
//绝对路径
f2.createNewFile();
}
}
|
在eclipse项目开发中,user.dir就是本项目的目录。因此,执行完毕后,在本项目和D盘下都生成了新的文件(如果是eclipse下,一定按F5刷新目录结构才能看到新文件)。如图所示。
通过File对象可以访问文件的属性:
表8-3 File类访问属性的方法列表
【示例】测试File类访问属性的基本用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import
java.io.File;
import
java.util.Date;
public
class
TestFile2 {
public
static
void
main(String[] args)
throws
Exception {
File f =
new
File(
"d:/b.txt"
);
System.out.println(
"File是否存在:"
+f.exists());
System.out.println(
"File是否是目录:"
+f.isDirectory());
System.out.println(
"File是否是文件:"
+f.isFile());
System.out.println(
"File最后修改时间:"
+
new
Date(f.lastModified()));
System.out.println(
"File的大小:"
+f.length());
System.out.println(
"File的文件名:"
+f.getName());
System.out.println(
"File的目录路径:"
+f.getPath());
}
}
|
执行结果如图所示:
通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)
表8-4 File类创建文件或目录的方法列表
【示例】使用mkdir创建目录
1
2
3
4
5
6
7
8
9
10
11
|
import
java.io.File;
public
class
TestFile3 {
public
static
void
main(String[] args)
throws
Exception {
File f =
new
File(
"d:/c.txt"
);
f.createNewFile();
// 会在d盘下面生成c.txt文件
f.delete();
// 将该文件或目录从硬盘上删除
File f2 =
new
File(
"d:/电影/华语/大陆"
);
boolean
flag = f2.mkdir();
//目录结构中有一个不存在,则不会创建整个目录树
System.out.println(flag);
//创建失败
}
}
|
执行结果如图所示:
【示例】使用mkdirs创建目录
1
2
3
4
5
6
7
8
9
10
11
|
import
java.io.File;
public
class
TestFile4 {
public
static
void
main(String[] args)
throws
Exception {
File f =
new
File(
"d:/c.txt"
);
f.createNewFile();
// 会在d盘下面生成c.txt文件
f.delete();
// 将该文件或目录从硬盘上删除
File f2 =
new
File(
"d:/电影/华语/大陆"
);
boolean
flag = f2.mkdirs();
//目录结构中有一个不存在也没关系;创建整个目录树
System.out.println(flag);
//创建成功
}
}
|
执行结果如图所示:
【示例】File类的综合应用
1
2
3
4
5
6
7
8
9
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
|
import
java.io.File;
import
java.io.IOException;
public
class
TestFile5 {
public
static
void
main(String[] args) {
//指定一个文件
File file =
new
File(
"d:/sxt/b.txt"
);
//判断该文件是否存在
boolean
flag= file.exists();
//如果存在就删除,如果不存在就创建
if
(flag){
//删除
boolean
flagd = file.delete();
if
(flagd){
System.out.println(
"删除成功"
);
}
else
{
System.out.println(
"删除失败"
);
}
}
else
{
//创建
boolean
flagn =
true
;
try
{
//如果目录不存在,先创建目录
File dir = file.getParentFile();
dir.mkdirs();
//创建文件
flagn = file.createNewFile();
System.out.println(
"创建成功"
);
}
catch
(IOException e) {
System.out.println(
"创建失败"
);
e.printStackTrace();
}
}
//文件重命名(同学可以自己测试一下)
//file.renameTo(new File("d:/readme.txt"));
}
}
|
第一次执行结果如图所示:
第二次执行结果如图所示: