File
File类代表文件或者文件夹的类
方法
1、创建代表文件类的对象
创建对象时只是把路径信息放到对象身上并不检测路径信息是否存在
等到对象做具体操作时再检测路径信息是否存在
eg: File file=new File(“D:\a.txt”);
2、新建空文件
file.createNewFile();
3、创建新的文件夹(多级)
file.mkdirs();
4、可以删除文件无论是否有内容
只能删除没有内容的文件夹
不进回收站永久删除
file.delete();
5、会把当前文件夹下所有的信息当做成File对象存储在数组中并进行返回
File[] fs = file.listFiles();
6、遍历数组
for(File f:fs){
System.out.println(f);//每个数组元素代表是一个File类对象}
7、判断File类对象是否是文件夹
file.isDirectory()
8、判断File类对象是否是文件
file.isFile()
9、返回文件名称以及后缀
file.getName()
10、返回文件的当前文件夹的路径信息
file.getParent()
11、返回全路径信息(路径+文件信息)
file.getPath()
12、返回上次修改的时间(从1970年1月1日0时0分0秒到此时的毫秒值)
file.lastModified()
13、修改上次修改的时间
file.setLastModified(3456313457L);
14、获取名称中含有数字的信息
按照过滤条件来过滤指定信息,把过滤之后的信息当做成File类的对象存放到数组中并进行返回
①
File[] fs = file.listFiles(new FileFilter() {
//重写方法就是来指定过滤规则
public boolean accept(File pathname) {
return pathname.getName().matches(".\d.");
}
});
②
File[] fs = file.listFiles(new FilenameFilter() {
// //重写方法就是来指定过滤规则
public boolean accept(File dir, String name) {//name代表文件名称
return name.matches(".\d.");
}
});
15、重命名–通过剪切实现的
file.renameTo(new File(“D:\javase\c.txt”));
练习
1、删除文件/文件夹(无论文件夹是否有内容 递归思想)
public class FileDemo {
public static void main(String[] args) {
//创建file类对象
File file = new File(“D:\a\b”);
//调用递归方法
iterDemo(file);
}
public static void iterDemo(File file) {
//判断是否为文件夹
if (file.isDirectory()) {
//如果是,那将文件中的所有信息当作File对象放入数组中进行返回
File[] fs = file.listFiles();
//遍历数组,只有循环完毕,说明当前文件夹变为空文件夹
for (File f : fs) {
//进行递归循环
iterDemo(f);
}
}
//删除空文件夹以及文件
file.delete();
}
}
2.同级工程中的所有的.java文件个数以及.class文件个数
public class FileDemo2 {
private static int countjava;
private static int countclass;
public static void main(String[] args) {
//创建file类对象
File file = new File("D:\\workspace");
//调用递归方法
iterDemo(file);
System.out.println(".java文件个数:" + countjava + ",.class文件个数:" + countclass);
} public static void iterDemo(File file) {
if (file.isDirectory()) {//判断文件是否为文件
//如果是,那将文件中的所有信息当作File对象放入数组中进行返回
File[] fs = file.listFiles();
//遍历数组,只有循环完毕,说明当前文件夹变为空文件夹
for (File f : fs) {
//进行递归循环
iterDemo(f);
}
} else if (file.getName().endsWith(".java")) {
countjava++;
} else if (file.getName().endsWith(".class")) {
countclass++;
}
}
}