一、File类定义
-
File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类
-
File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较
二、代码示例
1.简单介绍
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
// 创建文件对象 构造方法的参数传入的是路径
// 仅仅将路径和file对象进行了关联,但是没有创建对应的文件或者文件夹
File file = new File("F:\\a.txt");
// 只是创建新的文件,并不能创建目录
// 如果没有文件就去创建,如果有文件就不创建
// 并没有创建新的文件去覆盖旧的文件
file.createNewFile();
// 创建目录
file.mkdirs();
// 删除文件/目录 是永久删除!!!
// 目录中如果有内容,不能直接删除
file.delete();
// File[] 路径中所有的内容
// 获取路径中所有的文件和目录
File[] files = file.listFiles();
for (File f : files) {
System.out.println(f);
}
System.out.println(file);
}
}
import java.io.File;
import java.io.IOException;
public class FileDemo02 {
public static void main(String[] args) throws IOException {
File file = new File("F:\\");
// file.createNewFile();
// System.out.println(file.getAbsolutePath());
// 可用空间
System.out.println(file.getFreeSpace());
// 总容量
System.out.println(file.getTotalSpace());
// 可用空间
System.out.println(file.getUsableSpace());
// System.out.println(file.canWrite());
// System.out.println(file.exists());
}
}
2.demo示例
①删除一个目录中的所有内容
import java.io.File;
public class FilePractice {
public static void main(String[] args) {
// 删除一个目录中的所有内容
// 关联目录
File file = new File("F:\\jdk1.9");
del(file);
}
// 递归去删除文件和目录
public static void del(File file){
if (file.isDirectory()){// 目录
// 获取所有的目录和文件
File[] files = file.listFiles();
for (File f : files) {
del(f); // 递归时传入的是f
}
}
file.delete();
}
}
②统计所有的.java和.class文件的个数
import java.io.File;
public class FilePractice01 {
static int javaCount = 0;
static int classCount = 0;
public static void main(String[] args) {
// 统计所有的.java和.class文件的个数
File file = new File("F:\\workspace");
count(file);
System.out.println("java文件的个数是"+javaCount);
System.out.println("class文件的个数是"+classCount);
}
// 通过递归获取每一个文件和目录,
// 统计.java和.class的个数
public static void count(File file){
if (file.isDirectory()){
// 获取所有的文件和目录
File[] files = file.listFiles();
for (File f : files) {
count(f); // 递归时传入的是f
}
}else if(file.getName().endsWith(".java")){
javaCount++;
}else if(file.getName().endsWith(".class")){
classCount++;
}
}
}