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"));
}
}
|
第一次執行結果如圖所示:
第二次執行結果如圖所示: