JAVA基础学习总结,day18(file类,递归)

File类:

概述:java.io.File类是文件和目录路径名的抽象表示,用于文件和目录的创建、查找、删除等操作
构造方法:
public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例

注意事项:
1.一个File对象代表硬盘中实际存在的一个文件或者目录
2.无论路径的文件或者目录是否存在,都不影响File对象的创建

常用方法
public String getAbsolutePath() :返回此File的绝对路径名字符串。
public File getAbsoluteFile(): 返回此File的绝对路径名Flie对象
public String getPath() :将此File转换为路径名字符串。File对象是以什么路径创建的就获取什么路径 如果File对象是绝对路径,就获得绝对路径,如果是相对路径就获得相对路径
public String getName() :返回由此File表示的文件或目录的名称。
public long length() :返回由此File表示的文件的长度。

绝对路径:从盘符开始的路径,这是一个完整的路径
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中常用

判断功能的方法
public boolean exists() :此File表示的文件或目录是否实际存在。
public boolean isDirectory() :此File表示的是否为目录。(判断是不是文件夹或者存不存在)
public boolean isFile() :此File表示的是否为文件。 (判断是不是文件或者存不存在)
endsWith(string str): 判断此文件是否跟括号内的文件名后缀一样

创建删除功能的方法
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
public boolean delete() :删除由此File表示的文件或目录。1.删除的文件或文件夹不走回收站,2.只能删除空文件夹,3.删除的文件要存在
public boolean mkdir() :创建由此File表示的目录。(创建单个文件夹)
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。 (创建多级文件夹)

文件夹遍历
public String[] list() :返回一个String数组,获取File文件夹中的所有文件名和文件夹名的字符串形式
public File[] listFiles() :返回一个File数组,获取File文件夹中的所有文件名的绝对路径和文件夹名的绝对路径的File对象形式
public File[] listFiles(FileFilter fileFilter): 遍历文件过滤器优化

递归:

概述: 方法自己调用自己
使用递归:找规律,找出口
递归的注意事项:
1.递归次数太多,会出现溢出异常。
2.递归一定要有出口,出口不能太晚,太晚也会出现异常

递归打印多级文件夹

public class DiGuiDemo2 {    
public static void main(String[] args) {       
// 创建File对象           
File dir  = new File("D:\\aaa");       
// 调用打印目录方法          
printDir(dir);    
}      
public static void  printDir(File dir) {       
// 获取子文件和目录           
File[] files = dir.listFiles();       
// 循环打印          
/*            
判断:            
当是文件时,打印绝对路径.            
当是目录时,继续调用打印目录的方法,形成递归调用.          
*/           
     for (File file : files) {    
	 // 判断                     
	 if (file.isFile()) {               
	 	// 是文件,输出文件绝对路径                         
	 	System.out.println("文件名:"+ file.getAbsolutePath());                       
	 } else {               
	 	// 是目录,输出目录绝对路径                   
	 	System.out.println("目录:"+file.getAbsolutePath());               
	 	// 继续遍历,调用printDir,形成递归                  
		printDir(file);            
	}        
     }    
}
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值