共计 2694 个字符,预计需要花费 7 分钟才能阅读完成。
1、File 类概述
文件和目录路径名的抽象表示形式
2、File 类构造方法
public File(String pathname): 根据一个路径得到 File 对象
public File(String parent,String child): 根据一个目录和一个子文件 / 目录得到 File 对象
public File(File parent,String child): 根据一个父 File 对象和一个子文件 / 目录得到 File 对象
演示代码
public static void main(String[] args) {// File(String pathname):根据一个路径得到 File 对象
// 把 e:\\demo\\a.txt 封装成一个 File 对象
File file = new File("E:\\demo\\a.txt");
// File(String parent, String child):
// 根据一个目录和一个子文件 / 目录得到 File 对象
File file2 = new File("E:\\demo", "a.txt");
// File(File parent, String child):
// 根据一个父 File 对象和一个子文件 / 目录得到 File 对象
File file3 = new File("e:\\demo");
File file4 = new File(file3, "a.txt");
// 以上三种方式其实效果一样
}
3、File 类的成员方法
(a) 创建功能
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
// 需求:我要在 e 盘目录下创建一个文件夹 demo
File file = new File("e:\\demo");
System.out.println("mkdir:" + file.mkdir());
// 需求: 我要在 e 盘目录 demo 下创建一个文件 a.txt
File file2 = new File("e:\\demo\\a.txt");
System.out.println("createNewFile:" + file2.createNewFile());
// 创建多级文件夹
File file7 = new File("e:\\aaa\\bbb\\ccc\\ddd");
System.out.println("mkdirs:" + file7.mkdirs());
(b) 删除功能
public boolean delete()
// 删除功能:我要删除 a.txt 这个文件
File file3 = new File("a.txt");
System.out.println("delete:" + file3.delete());
注意:
A: 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
B:Java 中的删除不走回收站。
C: 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
©重命名功能
public boolean renameTo(File dest)
public static void main(String[] args) {// 创建一个文件对象
File file = new File("林青霞.jpg");
// 需求:我要修改这个文件的名称为 "东方不败.jpg"
File newFile = new File("东方不败.jpg");
System.out.println("renameTo:" + file.renameTo(newFile));
// 剪贴
File file2 = new File("东方不败.jpg");
File newFile2 = new File("e:\\ 林青霞.jpg");
System.out.println("renameTo:" + file2.renameTo(newFile2));
}
注意事项:
如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。
相对路径和绝对路径:
路径以盘符开始:绝对路径 c:\a.txt
路径不以盘符开始:相对路径 a.txt
(d) 判断功能
public boolean isFile():是否是文件
public boolean isDirectory():是否是文件夹
public boolean exists():是否存在
public boolean canRead():是否可读
public boolean canWrite():是否可写
public boolean isHidden():是否隐藏
(e) 基本获取功能
public String getAbsolutePath()
public String getPath()
public String getName()
public long length()
public long lastModified()
public static void main(String[] args) {// 创建文件对象
File file = new File("demo\\test.txt");
System.out.println("getAbsolutePath:" + file.getAbsolutePath());
//getAbsolutePath:E:\javaSE\File\demo\test.txt
System.out.println("getPath:" + file.getPath());
//demo\test.txt
System.out.println("getName:" + file.getName());
//test.txt
System.out.println("length:" + file.length());
//length:5(文件大小,字节数)
System.out.println("lastModified:" + file.lastModified());
// 文件的最后修改时间:lastModified:1444324936634(毫秒值)
// 把最后修改时间转成日期形式
// 1416471971031
Date d = new Date(1416471971031L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);//2019-11-20 16:26:11
}
(f) 高级获取功能
public String[] list(): 获取某个路径下所有的文件、文件夹的名称
public File[] listFiles():获取某个路径下所有的文件对象(文件:文件夹 + 文件夹)