学习内容:File类
1、File类的概述
1.1、File类和“四大家族”没有关系,File只是一个路径名的抽象表示形式,所以File类不能完成文件的读和写。
1.2、File对象是文件和文件夹(目录)路径名的抽象表示形式。一个File对象又肯对应的是目录,也可能是文件夹(目录)。
2、File类的方法
2.1、构造方法File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。File(String parent,String child)
根据指定的父路径和文件路径创建一个新File对象实例File(File parent,String child)
根据指定的父路径对象和文件路径创建一个新的File对象实例
2.2、常用方法boolean exists()
判断是否存在
boolean createNewFile()
指定路径不存在该文件时创建文件,返回true 否则falseboolean mkdir()
当指定的单击文件夹(目录)不存在时创建文件夹(目录)并返回true 否则falseboolean mkdirs()
但指定的多级文件夹(目录)在某一级文件夹不存在时,创建多级文件夹(目录)并返回true 否则falseboolean delete()
删除文件或者删除单级文件夹。删除文件夹,这个文件夹下面不能有其他的文件和文件夹
代码实例:
import java.io.File;
public class Test01 {
public static void main(String[] args) throws Exception {
//创建一个File对象
File f1=new File("D:\\file");
//判断是否存在
System.out.println(f1.exists());
//如果D:\file不存在,则以文件的形式创建出来
if(!f1.exists()){
//和之前一样,这里因为麻烦,异常就直接上抛了
f1.createNewFile();
}
//如果D:\file不存在,则以文件的形式创建出来
if(!f1.exists()){
//以目录的形式新建
f1.mkdir();
}
//创建多重目录
File f2=new File("D:\\a\\b\\c\\d");
if (!f2.exists()) {
//多重目录形式新建
f2.mkdirs();
}
//删除文件
System.out.println(f1.delete());
}
}
String getParent()
获取当前路径的父级路径,以字符串形式返回该父级路径String getAbsolutePath()
获取文件的绝对路径,返回路径的字符串File getAbsoluteFile()
获取文件的绝对路径,返回File对象
File f3=new File("D:\\奥特曼合集\\迪迦奥特曼\\Test.txt");
//获取文件的父路径
String parentPath=f3.getParent();
System.out.println(parentPath);//D:\奥特曼合集\迪迦奥特曼
File parentFile=f3.getParentFile();
System.out.println("获取绝对路径:"+parentFile.getAbsoluteFile());//获取绝对路径:D:\奥特曼合集\迪迦奥特曼
//获取绝对路径
File f4=new File("copy");
System.out.println(f4.getAbsoluteFile());//D:\IDEA\Project\Serein\copy
File f5=new File("myfile");
System.out.println(f5.getAbsolutePath());//D:\IDEA\Project\Serein\myfile
String getName()
获取文件或文件夹的名称boolean isDirectory()
判断是否是一个目录boolean isFile()
判断是否是一个文件long lastModified()
以毫秒值返回最后修改时间long length()
获取文件大小(字节数)boolean renameTo(File dest)
重命名
File f1=new File("D:\\奥特曼合集\\迪迦奥特曼\\迪迦奥特曼第一集.txt");
//String getName() 获取文件或目录的名称
System.out.println("文件名:"+f1.getName());//文件名:迪迦奥特曼第一集.txt
//boolean isDirectory() 判断是否是一个目录
System.out.println(f1.isDirectory());//false
//boolean isFile() 判断是否是一个文件
System.out.println(f1.isFile());//true
long haoMiao=f1.lastModified();//这个毫秒是从1970年到现在的总毫秒数
//将总毫秒数转换成日期
Date time=new Date(haoMiao);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String strTime=sdf.format(time);
System.out.println(strTime);//2021-12-01 09:43:54 278
//获取文件大小
System.out.println(f1.length());//842字节
//重命名
File file = new File("a.txt");
File file1 = new File("e.txt");
System.out.println(file.renameTo(file1));
File[] listFile
以File对象的形式返回当前路径下的所有文件和文件夹名称
//获取当前目录下所以的子文件
File f=new File("D:\\JDK");
File[] files=f.listFiles();
//foreach
for (File file:files){
System.out.println(file.getAbsolutePath());//获取绝对路径
System.out.println(file.getName());//获取文件名
}