File类的基本用法
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")); } } |
第一次执行结果如图所示:
第二次执行结果如图所示: