![2520e07492341f53649467e0b7010dc4.png](https://i-blog.csdnimg.cn/blog_migrate/dfa7a24e0f0e72479f8f901c8217b84d.jpeg)
java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。
1、File类的常见构造方法
public File(String pathname)
public File(File parent, String child)
2、通过File对象可以访问文件的属性
![902d095048b8012a37ae5fe3fdbb0aa4.png](https://i-blog.csdnimg.cn/blog_migrate/39d6f5241dfe07ecb1f61f22ce47e037.jpeg)
3、通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)
![e8568f04e637a3fd8b3df7e2391b653a.png](https://i-blog.csdnimg.cn/blog_migrate/b3be6165f807bd84493cfb9bec520297.jpeg)
4、File类的常用方法
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class TestFile {
public static void main(String[] args) throws IOException {
System.out.println("用户当前目录:" + System.getProperty("user.dir"));
//创建File类的对象
File f1 = new File("E:a.txt");//绝对路径"E:/a.txt"
File f2 = new File("a.txt");//相对路径,项目根目录user.dir
File f3 = new File("E:/test");//目录
File f4 = new File(f3, "a.txt");
File f5 = new File("E:" + File.pathSeparator + "a.txt");
/** File操作文件的相关方法 */
System.out.println("File是否存在:" + f2.exists());
System.out.println("创建File文件:" + f2.createNewFile());
// System.out.println("删除File文件:" + f2.delete());//直接从磁盘删除
System.out.println("File的绝对路径:" + f2.getAbsolutePath());
System.out.println("File的相对路径:" + f2.getPath());
System.out.println("File的文件名:" + f2.getName());
System.out.println(f2.toString());//默认调用了toString()--->getPath();
System.out.println("f2是否是文件:" + f2.isFile());
System.out.println("f3是否是文件:" + f3.isFile());
System.out.println("File内容的字节数:" + f2.length());
System.out.println("File最终修改时间:" + new Date(f2.lastModified()));
System.out.println("n-----------------------------------------------n");
/** File操作目录的相关方法 */
System.out.println("创建单层File目录:" + f3.mkdir());
System.out.println("File是否是目录:" + f3.isDirectory());
File f = new File("E:/电影/华语/大陆");
System.out.println("创建多层File目录:" + f.mkdirs());
File parentFile = f.getParentFile();//获取父级目录
System.out.println(parentFile);
System.out.println("删除父级目录:" + parentFile.delete());//false
f.delete();//delete()只允许删除空目录,无法直接删除父目录
System.out.println("删除父级目录:" + parentFile.delete());//true
System.out.println("n-----------------------------------------------n");
/** 打印目录内容 */
File file = new File("E:");
String[] strFiles = file.list();//返回String类型的数组
System.out.println("目录中元素个数:" + strFiles.length);
for (String string : strFiles) {
System.out.println(string);
}
File[] files = file.listFiles();//返回File类型的数组
for (File file2 : files) {
System.out.println(file2);
}
}
}
5、通过getProperties()找到了能获取到的属性
![fd42968c50434def7f92a7f8842a3a83.png](https://i-blog.csdnimg.cn/blog_migrate/f91efa94cc9eb638089b253a6eecb170.jpeg)
5、File类的综合应用
import java.io.File;
import java.io.IOException;
/**
* 判断一个文件是否存在,如果存在就删除,不存在就创建
*/
public class TestFile2 {
public static void main(String[] args) {
//指定一个文件
File file = new File("E:/test/a.txt");
//判断该文件是否存在
boolean flag = file.exists();
//如果存在就删除,不存在就创建
if(flag) {
//删除
boolean flagd = file.delete();
if(flagd) {
System.out.println("删除成功!");
}else {
System.out.println("删除失败!");
}
}else {
//创建
try {
//如果目录不存在,先创建目录
File dir = file.getParentFile();
dir.mkdirs();
//创建文件
file.createNewFile();
System.out.println("创建成功!");
} catch (IOException e) {
System.out.println("创建失败!");
e.printStackTrace();
}
}
}
}
第一次执行结果:
![67644afe5f76ce62bc365e965f2e51cc.png](https://i-blog.csdnimg.cn/blog_migrate/c2303829922fff6086bbba636b61ba7d.jpeg)
第二次执行结果:
![c08ac02aacddc88da18904afa1e10c96.png](https://i-blog.csdnimg.cn/blog_migrate/3d6e0d6adb617a8afbbbe18b66d1d6c2.jpeg)
尚学堂百战程序员
百战程序员_IT6000集_影响6000万学习IT的中国人【官网】