java.io.File;
- 1.File类和流无关,不能通过该类完成文件的读和写
- 2.File是文件和目录路径名的抽象表示形式
- File代表的是硬盘上的Directory(目录)和file(文件)
(1)createNewFile() 创建文件; mkdirs() 创建多重目录
package javase.jingjie.File;
import java.io.*;
public class Filetest01 {
public static void main(String[] args) throws Exception{
File f1=new File("src/javase/jingjie/File/Filetest01.java");
File f2=new File("E:\\java\\java chengxu\\java duixiang\\eclipse chengxu02\\src\\javase\\jingjie\\File\\Filetest01.java");
File f3=new File("E:/java");
//exists()方法是检查是否存在目录或文件
System.out.println(f1.exists());//true
System.out.println(f2.exists());//true
System.out.println(f3.exists());//true
File f4= new File("e:/TTT");
System.out.println(f4.exists());//false,不存在
//如果不存在,则创建
if(!f4.exists()) {
//创建目录
f4.mkdir();
}
File f5= new File("e:/HHH");
System.out.println(f5.exists());//false,不存在
if(!f5.exists()) {
//创建文件
f5.createNewFile();
}
File f6= new File("e:/a/b/c/d");
if(!f6.exists()) {
//创建多重目录
f6.mkdirs();
}
}
}
(2) File类的简单操作
package javase.jingjie.File;
import java.io.*;
import java.text.*;
import java.util.*;
public class Filetest02 {
public static void main(String[] args) {
File f1=new File("src/javase/jingjie/File/Filetest02.java");
//1.获取绝对路径f1.getAbsolutePath()
String absolutePath=f1.getAbsolutePath();
System.out.println(absolutePath);//E:\java\java chengxu\java duixiang\eclipse chengxu02\src\javase\jingjie\File\Filetest02.java
//2.获取文件名f1.getName()
System.out.println(f1.getName());//Filetest02.java
//3.获取文件的父路径f2.getParent()
File f2= new File("E:\\java\\java chengxu\\java duixiang\\eclipse chengxu02\\Filetest02.java");
String parentPath= f2.getParent();
System.out.println(parentPath);//E:\java\java chengxu\java duixiang\eclipse chengxu02
//4.判断该File是目录还是文件f1.isDirectory()或f1.isFile()
System.out.println(f1.isDirectory());//false
System.out.println(f1.isFile());//true
//5.获取文件最后一次修改时间f1.lastModified()
Date t=new Date(f1.lastModified());
System.out.println(new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss:SSS").format(t));//2019-10-25,20:49:03:096
//6.获取文件的字节数
System.out.println(f1.length());
//7.列出子文件夹 只有目录才有listFiles()方法,文件没有该方法
File f3=new File("E:\\java\\java chengxu\\java duixiang\\eclipse chengxu02\\src\\javase\\jingjie\\IO");
File[] fs=f3.listFiles();//获取该目录的所有子文件,只是IO文件的下一级
//遍历
for(File f:fs) {
//获取绝对路径
//System.out.println(f.getAbsolutePath());
//以.java结尾的文件
if(f.getAbsolutePath().endsWith(".java")){
System.out.println(f.getAbsolutePath());
}
}
}
}
(3) 使用递归找出某目录下所有子目录及子文件
package javase.jingjie.File;
/**
* 使用递归找出某目录下所有子目录及子文件
* */
import java.io.*;
public class Filetest03 {
public static void main(String[] args) throws Exception{
//
File f=new File("E:\\java\\java chengxu\\java duixiang\\eclipse chengxu02");
method1(f);
}
public static void method1(File f) {
if(f.isFile()) {
return;
}
//当做目录,f可能是文件,也可能是目录
File[] fs=f.listFiles();//只有目录才有这个方法,列出所有子文件,只是当前目录的下一级,可能是目录或文件
for(File subF:fs) {
System.out.println(subF.getAbsolutePath());//
method1(subF);
}
}
}