Java.io包下的File类实现了Serializable和Comparable两个接口
1.创建文件
注意:
1).如果D盘下file文件夹不存在,则抛出异常;如果D盘下file文件夹存在,则创建成功,返回true
2).如果D盘下file文件夹下已存在file.txt文件,则返回false
public static void main(String[] args) throwsIOException {
File file= new File("D:\\file\\file.txt");
System.out.println("文件是否创建成功:"+file.createNewFile());
}
}
2.判断文件是否存在
存在返回true;不存在返回false
System.out.println("文件是否存在:"+file.exists());
3.判断是否是文件
是返回true;不是返回false
System.out.println("是否是文件:"+file.isFile());
4.文件重命名
成功返回true;不成功返回false;
注意:如果修改后的路径和修改前的路径不一致,会把修改前的文件剪切掉,然后再新路径下创建新的文件
File file2 = new File("D:\\file\\file2.txt");
System.out.println("文件重命名是否成功:"+file.renameTo(file2));
5.创建单级目录
创建成功返回true;创建失败返回false
注意:
1)如果目录已存在,返回false
2)mkdir()无法创建多级目录
File f = new File("D:\\dir");
System.out.println("创建单级目录是否成功:"+f.mkdir());
6.创建多级目录
创建成功返回true;创建失败返回false
注意:如果目录已存在,返回false
File f = new File("D:\\dir\\dir1\\dir2");
System.out.println("创建多级目录是否成功:"+f.mkdirs());
7.判断是否是文件夹
是返回true;不是返回false
System.out.println("是否是文件夹:"+f.isDirectory());
8.获取文件/文件夹的名称
注意:如果是获取文件夹,那么获取到的是最后一级的目录名
System.out.println("文件的名称:"+file.getName());
System.out.println("文件夹的名称:"+f.getName());
9.获取文件/文件夹的路径
9.1getPath()
注意:
1)返回的是定义时的路径,这个路径可能是相对路径,也可能是绝对路径,这个取决于你定义路径时的设置
2)返回值类型是String
System.out.println("文件路径字符串:"+file.getPath());
System.out.println("目录路径字符串"+f.getPath());
9.2getAbsolutePath()
注意:
1)返回的是绝对路径,即从根路径开始
2)返回值类型是String
System.out.println("文件路径字符串:"+file.getAbsolutePath());
System.out.println("目录路径字符串"+f.getAbsolutePath());
9.3getAbsoluteFile()
注意:
1)返回的是绝对路径,即从根路径开始
2)返回值类型是File
System.out.println("文件绝对路径:"+file.getAbsoluteFile());
System.out.println("目录绝对路径"+f.getAbsoluteFile());
10.删除文件/文件夹
删除成功返回true,删除失败返回false
注意:当删除文件夹时,delete()方法删除的是最后一级目录
System.out.println("文件是否删除成功:"+file.delete());
System.out.println("文件夹是否删除成功:"+f.delete());
11.获取文件/文件夹所在的目录名称
返回值类型为String
注意:返回的路径与定义File类时的路径一致
System.out.println("文件所在文件夹名称:"+file.getParent());//文件所在文件夹名称:D:\file
System.out.println("上级目录名称:"+f.getParent());//上级目录名称:D:\dir\dir1
12.获取文件大小
返回值类型是long
注意:返回的文件大小表示字节(一个英文占1字节,一个汉字占3字节)
System.out.println("文件大小:"+file.length());//文件大小:7
13.获取最后修改时间
返回值类型是long
long date =file.lastModified();
SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(simpleDateFormat.format(new Date(date)));//2020-05-13 13:35:45
14.获取目录下文件/文件夹
14.1 list()方法
返回值类型是字符串集合
注意:返回的是目录下的文件或文件夹,如果文件夹下还有文件,不会返回
String[] list =f.list();for(String s : list) {
System.out.println(s);
}
14.2 listFiles()方法
返回值类型是File类型集合
注意:返回的是目录下的文件或文件夹,如果文件夹下还有文件,不会返回
File[] files =f.listFiles();for(File fl : files) {
System.out.println("目录下文件/文件夹名称:"+fl.getName());
}
综合示例(递归,查看目录下所有的文件夹和文件)
public static void main(String[] args) throwsIOException {
String rootPath= "D:\\dir";
recursion(rootPath);
}public static voidrecursion(String rootPath ) {
File f1= newFile(rootPath);if (f1 != null) {if(f1.isDirectory()) {
File[] files=f1.listFiles();if (files.length > 0) {for(File file : files) {if(file.isDirectory()) {
System.out.println(rootPath+"下"+"文件夹名称:" +file.getName());
recursion(file.getAbsolutePath());
}else{
System.out.println(rootPath+"下"+"文件名称:"+file.getName());
}
}
}else{
System.out.println(rootPath+"目录下没有内容");
}
}else{
System.out.println(rootPath+ "不是目录");
}
}else{
System.out.println("系统没有找到路径");
}
}