前言
- File类的一个对象,代表一个文件或者文件夹
- File类声明在IO包下
- File类涉及到文件的创建、删除、重命名、修改时间、文件大小等方式;并未涉及到数据的写入与读取等操作,如果需要读取或者写入数据,必须使用IO流来完成
- 后续File类的对象常常被当做参数传递到流的构造器中,指明读取或写入的位置
一、创建File类的对象
- 相对路径:相较于某个路径下,指明的路径
- 绝对路径:包含盘符在内的文件或文件目录的路径
//构造器一:
File(String pathName)
//构造器二:
File(String parent, String child)
//构造器三:
File(File parent, String child)
一个File类的对象就表示一个计算机的文件或者目录(文件夹)
File f = new File("E:\\dome.text");//在创建File对象时,不检测文件是否存在
File f1 = new File("E:\\");
File f2 = new File(f1,"dome.txt");
String p = "E:\\";
File f3 = new File(p,"dome.txt");
二、常用方法
1、获取方法
获取绝对路径
public String getAbsolutePath()
获取路径
public String getPath()
获取名称
public String getName()
获取上层文件目录路径,没有返回null
public String getParent()
获取文件长度(字节数),不能获取目录长度
public Long length()
获取最后一次修改时间
public Long lastModifide()
获取指定目录下所有文件和文件目录的名称数组
public String[] list()
获取指定目录下所有文件和文件目录的File数组
public File[] listFiles()
File f = new File("E:\\dome.txt");
System.out.println(f.length());//获取文件内容长度,以字节为单位
System.out.println(f.getParent());//父级,以字符串形式
System.out.println(f.getName());//返回名字
System.out.println(f.getAbsolutePath());//获得相对路径的文件的绝对路径
System.out.println(f.exists());//文件是否存在
System.out.println(f.getPath());//获取路径
System.out.println(f.lastModified());//创建时间
DateUtil dateUtil = new DateUtil();
System.out.println(dateUtil.dateToString(f.lastModified(),"yyyy年MM月dd日"));
2、判断功能
判断是否是文件目录
public boolean isDirectory()
判断是否是文件
public boolean isFile()
判断是否存在
public boolean exists()
判断是否可读
public boolean canRead()
判断是否可写
public boolean canWrite()
判断是否隐蔽
public boolean isHidden()
File f = new File("E:\\dome.txt");
System.out.println(f.isDirectory());//判断是否是文件夹
System.out.println(f.isHidden());//判断文件是否为隐藏文件
System.out.println(f.isAbsolute());//判断路径是否为绝对路径
System.out.println(f.canRead());//是否能读
System.out.println(f.canWrite());//是否能写
System.out.println(f.canExecute());//是否只操作
3、创建功能
创建文件。若文件存在,则不创建,返回false
如果文件不存在,则创建文件返回true
如果盘符/地址在计算机没有则抛异常
public boolean createNewFile()
创建一级文件目录,若存在,则不创建,返回false
public boolean mkdir()
创建多级文件目录
public boolean mkdirs()
创建文件
File f = new File("E:\\dome\\dome");
try{
System.out.println(f.createNewFile());
}catch (IOException e){
e.printStackTrace();
4、删除功能
删除文件或者文件夹
System.out.println(f.delete());//删除文件,存在返回true,不存在返回false
System.out.println(f.mkdir());//只能创建单级文件夹
//mkdirs创建多级文件夹
//f.delete();//删除文件夹,删除时文件夹必须为空
5、遍历
1.遍历方式1
File f = new File("E:\\dome");
//获取指定目录下的所有子级的文件或目录或者目录以字符串形式返回
//遍历方式1
/*String[] farray = f.list();
for (String arr:farray) {
System.out.println(arr);
}*/
String[] farray = f.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
for (String arr:farray) {
System.out.println(arr);
}
2.遍历方式2
File[] fs = f.listFiles();
for (File file:fs) {
System.out.println(file);
}
//修改文件夹名
File f1 = new File("E:\\dome1");
f.renameTo(f1);
}