什么是File
File代表的就是我们磁盘中的文件或者文件夹
文件操作
public class Test {
public static void main(String[] args) {
fileOpe();
}
//分隔符
public static void separator(){
System.out.println("路径分隔符:"+File.pathSeparator);//;
System.out.println("名称分隔符:"+File.separator);//\
}
//文件操作
public static void fileOpe(){
try{
//创建文件
//如果给的是相对路径的话那么文件就会在当前文件夹创建
File file = new File("E:\\javadoc\\javase\\fileOne.txt");//构建File实例化,但是没有创建文件
File fileTwo = new File("E:\\javadoc\\javase\\fileTwo.txt");//构建File实例化,但是没有创建文件
if(!file.exists() || !fileTwo.exists()){//判断当前问价你是否存在,存在为true,不存在为false
file.createNewFile();//创建文件
fileTwo.createNewFile();
}
//删除文件
//System.out.println(file.delete());//返回值是boolean删除成功true否则为false
//使用jvm删除文件
//file.deleteOnExit();
//Thread.sleep(5000);//线程休眠5秒
//判断文件
System.out.println(file.canWrite());//判断是否能写
System.out.println(file.isFile());//是否是文件
System.out.println(file.canRead());//判断文件是否可读
System.out.println(file.isHidden());//判断文件是否隐藏
//获取文件的一些信息
System.out.println(file.getAbsolutePath());//获得文件的绝对路径
System.out.println(file.getPath());//获得父目录
System.out.println(file.getName());//获得文件名
System.out.println(file.length());//获得文件长度
System.out.println(file.lastModified());//获得文件创建时间
System.out.println(file.getParentFile());//获得父目录路径
//此方法用于比较两个文件路径或文件,无论它们在字典上是否相等。这意味着如果返回0,则两个文件相等;如果返回负值,则第一个参数将小于给定参数;如果返回大于0,则第一个参数将大于0。
System.out.println(file.compareTo(fileTwo));
}catch (Exception e){
e.printStackTrace();
}
}
}
文件夹操作
public static void dire(){
File file = new File("E:\\javadoc\\javase\\aaa\\bbb\\ccc");
//创建
if(!file.exists()){
// file.mkdir();//创建单级目录
System.out.println(file.mkdirs());//创建多级目录
}
//删除
//file.delete();//只能删除空目录,而且只能删除一级也就是ccc目录
//获取信息
/*System.out.println(file.getAbsolutePath());//获得文件绝对路径
System.out.println(file.getPath());//获得路径
System.out.println(file.getName());//获得文件名
System.out.println(file.getParent());//获得父目录
//判断
System.out.println(file.isDirectory());//是否是文件夹
System.out.println(file.isHidden());//是否是隐藏*/
//遍历
File file1 = new File("E:\\BaiduNetdiskDownload");
String[] list = file1.list();
System.out.println("___________");
for (String s : list) {
System.out.println(s);
}
System.out.println("____________");
File[] files = file1.listFiles();
for (File file2 : files ) {
System.out.println(file2);
}
}
注意删除文件夹只能删除空目录
FileFiilter接口的使用
public static void fileFilter(String filePath){
File file = new File(filePath);
//过滤文件
/*
为false是全部拦截,为true是则放行
*/
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
//判断后缀为zip
if (pathname.getName().endsWith(".zip")) {
return true;
}
return false;
}
});
for (File file1 : files) {
System.out.println(file1);
}
}
递归遍历文件夹
public static void recursionFile(File file){
File[] files = file.listFiles();//得到当前文件夹中的所有文件
if(files != null && files.length >0){//判断文件夹是否为空,以及长度是否大于0
for (File file1 : files) {//遍历文件夹
if(file1.isDirectory()){//判断是不是文件夹
recursionFile(file1);
}else {
System.out.println(file1.getParent());
}
}
}