File类方法应用,递归应用

该博客介绍如何使用Java的File类遍历文件系统,展示以.java为后缀和以Text为前缀的文件。通过递归实现多层级目录的遍历,展示每个层级的文件和子目录,并突出显示特定类型的文件。内容包括File类的方法使用,如getName(), getPath(), isDirectory()等,以及文件过滤和缩进效果的实现。
摘要由CSDN通过智能技术生成

利用File类,输出以下效果:

路径:F:\ceshi
|-.java为后缀文件有	FileTest05.java
|-.java为后缀文件有	FileTest06.java
|-以Text为前缀的文件有	Textceshi.txt
|-以Text为前缀的文件有	Textceshi2.txt
	路径:F:\ceshi\yu
	|-.java为后缀文件有	FileTest01.java
	|-以Text为前缀的文件有	Textyu01.txt
	|-以Text为前缀的文件有	Textyu02.docx
		路径:F:\ceshi\yu\zhong
		|-.java为后缀文件有	FileTest02.java
		|-.java为后缀文件有	FileTest03.java
		|-.java为后缀文件有	FileTest04.java
		|-以Text为前缀的文件有	Textzhong01.pub

首先要有程序的入口

public static void main(String[] args) {
		// 显示文件夹下所有的.java文件
		File file = new File("F:\\ceshi");
		showFile(file, 0);
	}

showFile方法:这里面要用到递归

// 递归
	private static void showFile(File file, int a) {
		for(int i=0;i<a;i++){
			System.out.print("\t");
		}
		System.out.println( "路径:"+file.getPath());
		
		// 1.首先要判断是不是文件夹
		if (file.isDirectory()) {
			// 2.把当前目录(F:\ceshi\yu\zhong)里的文件夹和文件存入file数组里
			File[] file1 = file.listFiles();
			
			// 3.然后增强for循环去遍历
			for (File f : file1) {
				// 4.判断遍历的文件里面有没有文件夹
				if (f.isDirectory()) {

					// System.out.println("\t"+f.getPath());
					showFile(f, a + 1);// 如果有文件夹,就把文件夹交上去重新运行
				} else if (f.getName().endsWith(".java")) {// endsWith判断字符串是否以指定的后缀结尾
					num(a);
					System.out.println("以.java为后缀文件有\t" + f.getName());
				} else if (f.getName().startsWith("Text")) {// startsWith判断字符串前缀
					num(a);
					System.out.println("以Text为前缀的文件有\t" + f.getName());

				}

			}

		}

	}

num方法:用来形成缩进的想效果

public static void num(int n) {
		for (int i = 0; i < n; i++) {
			System.out.print("\t");
		}
		System.out.print("|-");
	}

File类的一些方法

File类可以访问文件目录
 * 1.访问方法:
 * 返回值类型--方法 
 * String----getName():返回对象表示的文件名或者路径名,如果是路径,就返回最后一级子路径
 * String----getPath():返回对象缩对应的路径名
 * File------getAbsoluteFile():返回对象绝对路径
 * String----getAbsolutePath:返回对象所对应的绝对路径
 * String----getParent:返回对象所对应的目录(最后一级子目录)的父目录名
 * boolean---renameTo(File newName):重命名对象所对应的文件或者目录,重命名成功则返回true
 * 2.文件检测方法:
 * 返回值类型--方法 
 * boolean--- exists():判断对象所对应的文件或者目录是否存在
 * boolean--- canWrite():是否可写
 * boolean-- -canRead():是否可读
 * boolean--- isFile():是不是文件
 * boolean--- isDirectory():是不是目录(也就是文件夹)
 * boolean--- isAbsolute():是不是绝对路径
 * 3.获取文件信息
 * long----lastModified():文件的最后修改时间
 * long----length():文件类容的长度(也就是多少字节)
 * 4.文件操作的相关方法
 * boolean----createNewFile():当对象的文件不存在,就去重新创建一个,创建成功返回true
 * boolean----delete():删除对象对应的文件或者路径
 * static File createTempFile(String x,String y):在临时文件目录下创建一个空文件夹,使用给定的前缀,系统随机数和给定后缀作为文件名,是个静态方法,x大于3字节
 * static File createTempFile(String x,String y,File directory):在directory指定的目录下创建空文件
 * void-------deleteOnExit():注册一个钩子,指定Java虚拟机退出时,删除对象缩对应的文件和目录
 * 5.目录的操作相关的方法
 * boolean----mkdir():创建一个对象对应的目录,创建成功,返回true
 * String[] list():对象所有的文件名和路径名都存到数组里去
 * File[] listFiles():列出对象所有的文件和路径名,返回File数组
 * static File[] listRoots():列出系统所有的根路径,静态方法,可以直接用File类来调用
 * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值