目录
- File类的使用
- 1.1 创建File类实例的三种方法
- 1.2 File类的常用方法
- 1.2.1 File类的获取功能
- 1.2.2 File类的重命名功能
- 1.2.3 File类的判断功能
- 1.2.4 File类的创建和删除功能
File类的使用
-
java.io.File
:文件或文件目录路径的抽象表示形式,与平台无关 - File类的一个对象,代表一个文件或一个文件目录(文件夹)
- File类声明在
java.io
这个包下 - File类中涉及到关于文件、文件目录的创建,删除、重命名、修改时间、文件大小等方法
- 并未涉及到文件的修改写入或读取文件内容的操作。如果需要读取或写入文件内容,就必须使用IO流来完成。
- 后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”
1.1 创建File类实例的三种方法
@Test
public void test(){
//File(String filePath)
File file1 = new File("Hello.txt");//相对于module
File file2 = new File("D:\\IdeaProjects\\JavaSenior\\guigu20210911\\he.txt");//绝对路径
//File(String parentPath,String childPath)
File file3 = new File("D:\\IdeaProjects","JavaSenior");
//File(File file,String childPath)
File file4 = new File(file3,"hi.txt");
}
1.2 File类的常用方法
1.2.1 File类的获取功能
File file1 = new File("hello.txt");
File file2 = new File("d:\\io\\hi.txt");
//public String getAbsolutePath():获取绝对路径
System.out.println(file1.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
System.out.println("-----------");
//public String getPath:获取路径
System.out.println(file1.getPath());
System.out.println(file2.getPath());
System.out.println("-----------");
//public String getName():获取名称
System.out.println(file1.getName());
System.out.println(file2.getName());
System.out.println("-----------");
//public String getParent():获取上层目录路径。若无,返回null
System.out.println(file1.getParent());
System.out.println(file2.getParent());
System.out.println("-----------");
//public long length():获取文件长度(即:字节数)。不能获取目录的长度
System.out.println(file1.length());
System.out.println(file2.length());
System.out.println("-----------");
//public long lastModified(): 获取最后一次修改时间,毫秒值
System.out.println(new Date(file1.lastModified()));
System.out.println(new Date (file2.lastModified()));
System.out.println("-----------");
输出:
D:\IdeaProjects\JavaSenior\guigu20210911\hello.txt
d:\io\hi.txt
-----------
hello.txt
d:\io\hi.txt
-----------
hello.txt
hi.txt
-----------
null
d:\io
-----------
6
0
-----------
Sat Sep 11 18:06:48 CST 2021
Thu Jan 01 08:00:00 CST 1970
-----------
如下两种方法适用于文件目录
@Test
public void test2(){
File file1 = new File("D:\\IdeaProjects\\JavaSenior");
//public String[] list():获取指定目录下的所有文件或者文件目录的名称数组,
String list[] = file1.list();
for(String s : list){
System.out.println(s);
}
System.out.println("---------------------------------");
//public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
File file[] = file1.listFiles();
for(File f : file){
System.out.println(f);
}
}
输出:
.idea
guigu20210828
guigu20210829
guigu20210830
guigu20210831
guigu20210905
guigu20210910
guigu20210911
JavaSenior.iml
jdbc.properties
out
practiceSet
shangguigu_Project03
src
---------------------------------
D:\IdeaProjects\JavaSenior\.idea
D:\IdeaProjects\JavaSenior\guigu20210828
D:\IdeaProjects\JavaSenior\guigu20210829
D:\IdeaProjects\JavaSenior\guigu20210830
D:\IdeaProjects\JavaSenior\guigu20210831
D:\IdeaProjects\JavaSenior\guigu20210905
D:\IdeaProjects\JavaSenior\guigu20210910
D:\IdeaProjects\JavaSenior\guigu20210911
D:\IdeaProjects\JavaSenior\JavaSenior.iml
D:\IdeaProjects\JavaSenior\jdbc.properties
D:\IdeaProjects\JavaSenior\out
D:\IdeaProjects\JavaSenior\practiceSet
D:\IdeaProjects\JavaSenior\shangguigu_Project03
D:\IdeaProjects\JavaSenior\src
1.2.2 File类的重命名功能
@Test
public void test3(){
File file1 = new File("hi.txt");
File file2 = new File("D:\\IdeaProjects\\JavaSenior\\guigu20210911\\hello.txt");
File file3 = new File("D:\\IdeaProjects\\JavaSenior");
System.out.println(file1.renameTo(file2));//要想返回true,需要file1在硬盘中是存在的,且file2不能存在
System.out.println(file2.renameTo(file3));
}
输出:
true
false
1.2.3 File类的判断功能
@Test
public void test4(){
File file1 = new File("hello.txt");
File file2 = new File("D:\\IdeaProjects\\JavaSenior");
//public boolean isDirectory():判断是否是文件目录——常用
System.out.println(file1.isDirectory());
System.out.println(file2.isDirectory());
System.out.println("+++++++++++++++++++");
//public boolean idFile():判断是否是文件——常用
System.out.println(file1.isFile());
System.out.println(file2.isFile());
System.out.println("+++++++++++++++++++");
//public boolean canRead():判断是否可读——常用
System.out.println(file1.canRead());
System.out.println("+++++++++++++++++++");
//public boolean canWrite():判断是否可写
System.out.println(file1.canWrite());
System.out.println("+++++++++++++++++++");
//public boolean isHidden():判断是否隐藏
System.out.println(file1.isHidden());
}
输出:
false
true
+++++++++++++++++++
true
false
+++++++++++++++++++
true
+++++++++++++++++++
true
+++++++++++++++++++
false
1.2.4 File类的创建和删除功能
@Test
public void test5() throws IOException {
File file1 = new File("hi.txt");
//创建文件,文件存在则不创建,返回false
if(!file1.exists()){
file1.createNewFile();
System.out.println("文件创建成功!");
}else {
//文件已存在
file1.delete();
System.out.println("文件已删除!");
}
//mkdir:创建文件目录。存在不创建,返回false。若此文件目录的上层目录不存在也不创建
File file2 = new File("D:\\IdeaProjects\\JavaSenior\\guigu20210911\\dir1\\dir2\\dir4");
boolean mkdir = file2.mkdir();
if(mkdir){
System.out.println("文件目录创建成功!");
}else {
boolean dlt = file2.delete();
if (dlt){
System.out.println("文件目录已删除!");
}else {
System.out.println("文件上层目录不存在!");
}
}
//mkdirs:创建文件目录。存在则不创建,返回false。如果上层文件目录不存在,一并创建
File file3 = new File("D:\\IdeaProjects\\JavaSenior\\guigu20210911\\dir1\\dir2\\dir3");
boolean mkdirs = file3.mkdirs();
if(mkdirs){
System.out.println("文件目录创建成功!");
}else {
file2.delete();
System.out.println("文件目录已删除!");
}
}