第一章:File
0.介绍一个工具(可查看知识点)
1.File介绍
-
在java里,java.io.File类是处理文件和目录路径名的抽象表示
//创建一个File对象 File file=new File("a.txt")
2.介绍File类的相关方法
-
creaNewFile():
-
exists():
-
getAbsoluteFile():
-
getName():
-
getParent():
-
getPath():
获取文件全路径
-
isAbsolute:
-
isDirectore():
-
isFile:
判断是不是一个标准文件
-
lastModified():
查看最后一次被修改的时间
-
length():
文件的长度
-
list():
-
listFiles():
获取目录下的所有File对象
-
listRoots():
获取电脑的所有盘
-
mkdir():
创建文件指定的目录
3.遍历文件夹
-
获取到文件夹内的所有File对象的名称
String[] lists=file.list(); for(String name:lists){ System.out.println(name) }
4.讲解递归的使用
4.1 什么是递归
-
递归是指在函数的定义中使用函数自身的方法。
-
就是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
4.2 递归的使用
例如:
-
阶乘 阶乘是一个经典的递归问题,n的阶乘(表示为n!)
计算1+2+3+4....+100的和 int sum=0; for(int i=1;i<=100;i++){ sum+=i; } 计算1*2*3*4*....*100的积 int s=1; for(int i=1;i<=100;i++){ s*=i } 阶乘: 10!=1*2*3*4*5*6*7*8*9*10 n!=(n-1)!*n
5.使用递归迭代文件夹
File file =new File("d:/file/cs") showInfo(file) //写一个函数:接收一个File对象,输出该File对象内的所有File对象名 public static void showInfo(File file){ //获取File对象中的所有File对象 File[] files=file.listFiles(); //遍历数组,打印File对象的名字 for(File f.files){ //判断每一个File对象是不是文件夹:是文件夹就继续获取 if(f.isDirectory()){ //调用自己 继续获取File对象中的所有File对象 showInfo(f); }else{ //打印名字 System.out.println(f.getName()) } } }
public static void deByXLs(File file,String type){ //获取到File对象内的所有File对象 File[] files=file.listFiles(); //遍历数组 for(File f:files){ if(f.isDirectory()){ delByXLs(f) }else{ //获取每一个File对象的名称 Sring fileName=f.getName(); //获取到文件名最后一个点的下标 int lastIndexOf=fileName.lastIndexOf(".") //截取到后缀名 String fileType=fileName.substring(lastIndexOf); //判断后缀名是不是xls if(".xls".equals(fileType)){ //是就删除 f.delete(); System.out.println(fileName+"xls文件已删除") } } } }