Android(java)学习笔记26:File类的使用

1. File类的使用 

 1 package cn.itcast_01;
 2 
 3 import java.io.File;
 4 
 5 /*
 6  * 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。
 7  * 而Java就提供了一个类File供我们使用。
 8  * 
 9  * File:文件和目录(文件夹)路径名的抽象表示形式
10  * 构造方法:
11  *         File(String pathname):根据一个路径得到File对象
12  *         File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
13  *         File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
14  */
15 public class FileDemo {
16     public static void main(String[] args) {
17         // File(String pathname):根据一个路径得到File对象
18         // 把e:\demo\a.txt封装成一个File对象
19         File file = new File("E:\demo\a.txt");
20 
21         // File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
22         File file2 = new File("E:\demo", "a.txt");
23 
24         // File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
25         File file3 = new File("e:\demo");
26         File file4 = new File(file3, "a.txt");
27 
28         // 以上三种方式其实效果一样
29     }
30 }

上面提到的文件是不存在的,

E:\demo\a.txt"  接下来我们就是学习调用类方法来创建
 1 package cn.itcast_02;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 /*
 7  *创建功能:
 8  *public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
 9  *public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
10  *public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
11  *
12  *骑白马的不一定是王子,可能是班长。
13  *注意:你到底要创建文件还是文件夹,你最清楚,方法不要调错了。
14  */
15 public class FileDemo {
16     public static void main(String[] args) throws IOException {
17         // 需求:我要在e盘目录下创建一个文件夹demo
18         File file = new File("e:\demo");
19         System.out.println("mkdir:" + file.mkdir());
20 
21         // 需求:我要在e盘目录demo下创建一个文件a.txt
22         File file2 = new File("e:\demo\a.txt");
23         System.out.println("createNewFile:" + file2.createNewFile());
24 
25         // 需求:我要在e盘目录test下创建一个文件b.txt
26         // Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
27         // 注意:要想在某个目录下创建内容,该目录首先必须存在。
28         // File file3 = new File("e:\test\b.txt");
29         // System.out.println("createNewFile:" + file3.createNewFile());
30 
31         // 需求:我要在e盘目录test下创建aaa目录
32         // File file4 = new File("e:\test\aaa");
33         // System.out.println("mkdir:" + file4.mkdir());
34 
35         // File file5 = new File("e:\test");
36         // File file6 = new File("e:\test\aaa");
37         // System.out.println("mkdir:" + file5.mkdir());
38         // System.out.println("mkdir:" + file6.mkdir());
39 
40         // 其实我们有更简单的方法
41         File file7 = new File("e:\aaa\bbb\ccc\ddd");
42         System.out.println("mkdirs:" + file7.mkdirs());
43 
44         // 看下面的这个东西:
45         File file8 = new File("e:\liuyi\a.txt");
46         System.out.println("mkdirs:" + file8.mkdirs());
47     }
48 }

下面说明一下删除功能

 1 package cn.itcast_03;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 /*
 7  * 删除功能:public boolean delete()
 8  * 
 9  * 注意:
10  *         A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
11  *         B:Java中的删除不走回收站。
12  *         C:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
13  */
14 public class FileDemo {
15     public static void main(String[] args) throws IOException {
16         // 创建文件
17         // File file = new File("e:\a.txt");
18         // System.out.println("createNewFile:" + file.createNewFile());
19 
20         // 我不小心写成这个样子了
21         File file = new File("a.txt");
22         System.out.println("createNewFile:" + file.createNewFile());
23 
24         // 继续玩几个
25         File file2 = new File("aaa\bbb\ccc");
26         System.out.println("mkdirs:" + file2.mkdirs());
27 
28         // 删除功能:我要删除a.txt这个文件
29         File file3 = new File("a.txt");
30         System.out.println("delete:" + file3.delete());
31 
32         // 删除功能:我要删除ccc这个文件夹
33         File file4 = new File("aaa\bbb\ccc");
34         System.out.println("delete:" + file4.delete());
35 
36         // 删除功能:我要删除aaa文件夹
37         // File file5 = new File("aaa");
38         // System.out.println("delete:" + file5.delete());
39 
40         File file6 = new File("aaa\bbb");
41         File file7 = new File("aaa");
42         System.out.println("delete:" + file6.delete());
43         System.out.println("delete:" + file7.delete());
44     }
45 }

下面再来介绍重命名的功能

 1 package cn.itcast_04;
 2 
 3 import java.io.File;
 4 
 5 /*
 6  * 重命名功能:public boolean renameTo(File dest)
 7  *         如果路径名相同,就是改名。
 8  *         如果路径名不同,就是改名并剪切。
 9  * 
10  * 路径以盘符开始:绝对路径    c:\a.txt
11  * 路径不以盘符开始:相对路径    a.txt
12  */
13 public class FileDemo {
14     public static void main(String[] args) {
15         // 创建一个文件对象
16         // File file = new File("林青霞.jpg");
17         // // 需求:我要修改这个文件的名称为"东方不败.jpg"
18         // File newFile = new File("东方不败.jpg");
19         // System.out.println("renameTo:" + file.renameTo(newFile));
20 
21         File file2 = new File("东方不败.jpg");
22         File newFile2 = new File("e:\林青霞.jpg");
23         System.out.println("renameTo:" + file2.renameTo(newFile2));
24     }
25 }

接下来我们说明一下file的判断功能

 1 package cn.itcast_05;
 2 
 3 import java.io.File;
 4 
 5 /*
 6  * 判断功能:
 7  * public boolean isDirectory():判断是否是目录
 8  * public boolean isFile():判断是否是文件
 9  * public boolean exists():判断是否存在
10  * public boolean canRead():判断是否可读
11  * public boolean canWrite():判断是否可写
12  * public boolean isHidden():判断是否隐藏
13  */
14 public class FileDemo {
15     public static void main(String[] args) {
16         // 创建文件对象
17         File file = new File("a.txt");
18 
19         System.out.println("isDirectory:" + file.isDirectory());// false
20         System.out.println("isFile:" + file.isFile());// true
21         System.out.println("exists:" + file.exists());// true
22         System.out.println("canRead:" + file.canRead());// true
23         System.out.println("canWrite:" + file.canWrite());// true
24         System.out.println("isHidden:" + file.isHidden());// false
25     }
26 }

我们来说一下file类的获取功能

 1 package cn.itcast_06;
 2 
 3 import java.io.File;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Date;
 6 
 7 /*
 8  * 获取功能:
 9  * public String getAbsolutePath():获取绝对路径
10  * public String getPath():获取相对路径
11  * public String getName():获取名称
12  * public long length():获取长度。字节数
13  * public long lastModified():获取最后一次的修改时间,毫秒值
14  */
15 public class FileDemo {
16     public static void main(String[] args) {
17         // 创建文件对象
18         File file = new File("demo\test.txt");
19 
20         System.out.println("getAbsolutePath:" + file.getAbsolutePath());
21         System.out.println("getPath:" + file.getPath());
22         System.out.println("getName:" + file.getName());
23         System.out.println("length:" + file.length());
24         System.out.println("lastModified:" + file.lastModified());
25 
26         // 1416471971031
27         Date d = new Date(1416471971031L);
28         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
29         String s = sdf.format(d);
30         System.out.println(s);
31     }
32 }

上面的执行结果如下:

file类的高级获取功能

 1 package cn.itcast_07;
 2 
 3 import java.io.File;
 4 
 5 /*
 6  * 获取功能:
 7  * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
 8  * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
 9  */
10 public class FileDemo {
11     public static void main(String[] args) {
12         // 指定一个目录
13         File file = new File("e:\");
14 
15         // public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
16         String[] strArray = file.list();
17         for (String s : strArray) {
18             System.out.println(s);
19         }
20         System.out.println("------------");
21 
22         // public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
23         File[] fileArray = file.listFiles();
24         for (File f : fileArray) {
25             System.out.println(f.getName());
26         }
27     }
28 }
原文地址:https://www.cnblogs.com/hebao0514/p/4527139.html