一、File类
- File类的对象,代表一个文件或一个文件目录(俗称:文件夹)
- File类声明在java.io包下
- File类中涉及到关于文件或文件目录的创建、删除、重命名、查看修改时间、查看文件大小等方法,并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,必须使用IO流完成
- File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”
二、路径
- 绝对路径:相对于某个路径下指明的路径
- 相对路径:包含盘幅在内的文件或文件目录的路径
- 路径中每级目录之间用一个路径分隔符隔开
- 路径分隔符和系统有关:
- Windows和DOS系统默认使用"\"来表示
- UNIX和URL使用“/”来表示
- Java中提供File.separator常量动态获取当前操作系统的分隔符
三、File类的实例化
- public File(String pathname)
File file1 = new File("hello.txt");
File file2 = new File("D:\\Temp\\hello.txt");
- public File(String parent, String child)
File file3 = new File("D:\\Temp","JavaTest");
- public File(File parent, String child)
File file4 = new File(file3, "hello.txt");
四、File类的常用方法
File类的获取功能
- public String getAbsolutePath():获取绝对路径
- public String getPath():获取路径
- public String getName():获取名称
- public String getParent():获取上层文件路径,若无,返回null
- public long length():获取文件长度(字节数),不能获取目录的长度
- public long lastModified():获取最后一次修改时间,ms
@Test
public void methodTest1() {
File file1 = new File("hello.txt");
File file2 = new File("D:\\Temp\\hello.txt");
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getPath());
System.out.println(file1.getName());
System.out.println(file1.getParent());
System.out.println(file1.length());
System.out.println(new Date(file1.lastModified()));
System.out.println();
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getPath());
System.out.println(file2.getName());
System.out.println(file2.getParent());
System.out.println(file2.length());
System.out.println(new Date(file2.lastModified()));
}
G:\Users\17687\eclipse-workspace\JavaProject\hello.txt
hello.txt
hello.txt
null
0
1970-01-01
D:\Temp\hello.txt
D:\Temp\hello.txt
hello.txt
D:\Temp
0
1970-01-01
- public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
public void methodTest2() {
File file = new File("G:\\Users\\17687\\eclipse-workspace\\TANG1");
String[] list = file.list();
for (String s : list) {
System.out.println(s);
}
}
.classpath
.project
.settings
bin
hello1.txt
src
- public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
public void methodTest3() {
File file = new File("G:\\Users\\17687\\eclipse-workspace\\TANG1");
File[] list = file.listFiles();
for (File s : list) {
System.out.println(s);
}
}
G:\Users\17687\eclipse-workspace\TANG1\.classpath
G:\Users\17687\eclipse-workspace\TANG1\.project
G:\Users\17687\eclipse-workspace\TANG1\.settings
G:\Users\17687\eclipse-workspace\TANG1\bin
G:\Users\17687\eclipse-workspace\TANG1\hello1.txt
G:\Users\17687\eclipse-workspace\TANG1\src
File类的重命名功能
- public boolean renameTo(File dest):把文件重命名为指定的文件路径
保证返回结果为true,需要file1在硬盘中是存在的,且file2不能存在
public void methodTest4() {
File file1 = new File("hello1.txt");
File file2 = new File("G:\\Users\\17687\\eclipse-workspace\\TANG1\\src//hi.txt");
boolean renameTo = file1.renameTo(file2);
System.out.println(renameTo);
}
File类的判断
- public boolean isDirectory():判断是否是文件目录
- public boolean isFile():判断是否是文件
- public boolean exists()
- public boolean canRead()
- public boolean canWrite()
- public boolean isHidden()
public void methodTest5() {
File file1 = new File("src");
System.out.println(file1.isFile());
System.out.println(file1.isDirectory());
System.out.println(file1.exists());
System.out.println(file1.canRead());
System.out.println(file1.canWrite());
System.out.println(file1.isHidden());
}
false
true
true
true
true
false
File类的创建功能
- public boolean createNewFile():创建文件。若文件存在,则不创建,返回false
public void methodTest6() throws IOException {
File file = new File("hi.txt");
if (!file.exists()) {
file.createNewFile();
}
}
- public boolean mkdir():创建文件目录,如果此文件目录存在,则不创建,如果此文件目录的上层目录不存在,也不创建
- public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建
- 若创建的文件或文件目录没有写盘幅路径,则默认在项目路径下。
public void methodTest8() {
File file1 = new File("hi");
boolean mkdir1 = file1.mkdir();
System.out.println(mkdir1);
File file2 = new File("hello\\hello1");
boolean mkdir2 = file2.mkdir();
System.out.println(mkdir2);
File file3 = new File("hello\\hello1");
boolean mkdirs = file2.mkdirs();
System.out.println(mkdirs);
}
File类的删除功能
- public boolean delete()
- Java中的删除不走回收站
- 要删除一个文件目录,注意该文件目录内不能包含文件或者文件目录
public void methodTest7() {
File file = new File("hi.txt");
if (file.exists()) {
file.delete();
}
}
其他
public void methodTest9() throws IOException {
File file1 = new File("hi.txt");
boolean mkdir1 = file1.createNewFile();
System.out.println(mkdir1);
System.out.println(file1.length());
System.out.println(file1.isFile());
System.out.println(file1.isDirectory());
System.out.println(file1.exists());
System.out.println(file1.canRead());
System.out.println(file1.canWrite());
System.out.println(file1.isHidden());
System.out.println();
File file2 = new File("hi2.txt");
System.out.println(file2.length());
System.out.println(file2.isFile());
System.out.println(file2.isDirectory());
System.out.println(file2.exists());
System.out.println(file2.canRead());
System.out.println(file2.canWrite());
System.out.println(file2.isHidden());
}
五、应用练习