File类的的基本概念
File类:表示文件和目录路径的抽象表示形式。
File类可以实现文件的创建、删除、重命名、得到路径、创建时间等等,是唯一与文件本身有关的操作类。
File类的操作方法
文件类的操作方法:
代码实例:
package com.booy;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class FileDemo {
public static void main(String[] args) {
//File表示一个文件或目录
//
File f1 =new File("d:"+File.separator+"test"+File.separator+"test.txt");
if(!f1.exists()) {//判断文件是否存在
try {
f1.createNewFile();//创建文件
System.out.println("文件创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
//f1.isFile()是否是文件
System.out.println("是否为文件夹:"+f1.isDirectory());
File f2 =new File("d:\\test\\my");
boolean b = f2.delete();//删除空文件夹
System.out.println("是否删除文件夹成功:"+b);
String[] names = f2.list();//列出当前目录下的所有文件名
System.out.println(Arrays.toString(names));
File[] fs =f2.listFiles();//列出当前目录下的所有文件,以file对象返回
for(File f:fs) {
System.out.println("length:"+f.length());
System.out.println("name:"+f.getName());
System.out.println("相对路径=:"+f.getPath());
System.out.println("相对路径=:"+f.getAbsolutePath());
System.out.println("是否为隐藏文件:"+f.isHidden());
System.out.println("是否为可读文件:"+f.canRead());
System.out.println("是否为可写文件:"+f.canWrite());
Date date = new Date(f.lastModified());
DateFormat df = new SimpleDateFormat("HH:mm:ss");
System.out.println("文件最后修改的时间:"+df.format(date));
System.out.println("-------------------");
}
//创建文件夹
File f3 =new File("d:\\test\\booy");
f3.mkdirs();
//重命名文件夹与移动文件
//f3.renameTo(new File("d:\\test\\booy123"));
File f5 =new File("d:\\test\\my");
File[] files = f5.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
});
for(File f:files) {
System.out.println(f.getName());
}
}
}
/**
运行结果:
是否为文件夹:false
是否删除文件夹成功:false
[111.txt, 新建 Microsoft Excel 工作表.xlsx, 新建 Microsoft Word 文档.docx, 新建文件夹, 新建文本文档 (2).txt]
length:0
name:111.txt
相对路径=:d:\test\my\111.txt
相对路径=:d:\test\my\111.txt
是否为隐藏文件:false
是否为可读文件:true
是否为可写文件:true
文件最后修改的时间:21:45:18
-------------------
length:8840
name:新建 Microsoft Excel 工作表.xlsx
相对路径=:d:\test\my\新建 Microsoft Excel 工作表.xlsx
相对路径=:d:\test\my\新建 Microsoft Excel 工作表.xlsx
是否为隐藏文件:false
是否为可读文件:true
是否为可写文件:true
文件最后修改的时间:21:45:30
-------------------
length:0
name:新建 Microsoft Word 文档.docx
相对路径=:d:\test\my\新建 Microsoft Word 文档.docx
相对路径=:d:\test\my\新建 Microsoft Word 文档.docx
是否为隐藏文件:false
是否为可读文件:true
是否为可写文件:true
文件最后修改的时间:21:45:25
-------------------
length:0
name:新建文件夹
相对路径=:d:\test\my\新建文件夹
相对路径=:d:\test\my\新建文件夹
是否为隐藏文件:false
是否为可读文件:true
是否为可写文件:true
文件最后修改的时间:21:45:10
-------------------
length:0
name:新建文本文档 (2).txt
相对路径=:d:\test\my\新建文本文档 (2).txt
相对路径=:d:\test\my\新建文本文档 (2).txt
是否为隐藏文件:false
是否为可读文件:true
是否为可写文件:true
文件最后修改的时间:09:06:51
-------------------
111.txt
新建文本文档 (2).txt
指定目录查找文件示例:
package com.booy;
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
findFile(new File("d:\\test"),".jpg");
}
//查找文件的方法
private static void findFile(File target,String ext) {
if(target==null)return;
//如果文件是目录
if(target.isDirectory()) {
File[] files = target.listFiles();
if(files!=null) {
for(File f:files) {
findFile(f,ext);//递归调用
}
}
}else {
String name = target.getName().toLowerCase();//获取文件名转换为小写
if(name.endsWith(ext)) {
System.out.println(target.getAbsolutePath());//获取文件的路径
}
}
}
}
/**
运行结果:
d:\test\1.jpg
d:\test\3.jpg
d:\test\my\2.jpg
*/