【常用类】File类

File类概述:

该类将文件,文件夹,路径封装成对象,并提供相应方法来操作文件文件夹,路径。

两组静态成员:

static String pathSeparator 和 static char  pathSeparatorChar  都是与系统相关的路径分隔符(一个路径与下一个路径的分隔)在    Windows下为 ;   Linux下为 :

separator 和 separatorChar 表示与系统相关的名称分隔符。 Windows下为 \  Linux /

构造器:

最常用到的File(String pathname) 将指定的路径封装成一个对象(如果写相对路径它的默认根路径是本工程的绝对路径)如果参数为空串则默认表示工程根路径。

创建功能(创建目录创建文件):

  1. 创建目录:
    1. mkdir()   只能创建单级目录。(按你file对象的构造器中封装的路径来创建,如果你要新建一个多级目录那会创建失败但不会报错,如果目录已经存在时不会重新创建。当目录新建成功时返回true)。
    2. mkdirs()可以创建多级目录。
  2. 创建文件:createNewFile()用构造器中封装的路径来创建,无则创建。若成功创建则返回true。

删除功能(不经过回收站,这是直接删除):

  1. delete():立刻马上删除。
  2. deleteOnExit()延迟删除,JVM结束之前删除。

重命名功能:

renameTo(File dest)。如果发现路径变化了,则会带有剪切效果。

判断功能:

  1. exists()判断file对象中封装的路径是否存在。
  2. isDriectory()判断是否是文件夹(如果路径实体不存在会返回false)
  3. isFile()判断是否是文件(如果路径实体不存在会返回false)
  4. isAbsolute()判断构造器中封装的路径是否为绝对路径,注意:这个跟有没有这个路径没有关系。他只是判断路径写法是否为绝对路径的写法(带盘符)。

获取功能:

  1. String getName()获取此文件路径中表示的文件或路径名。底层也是通过切割字符串实现的。
  2. String getAbsolutePath()获取File构造器封装的路径的绝对路径
  3. File getAbsoluteFile()与上面的一样,只不过他将返回的绝对路径有封装成了一个file对象。方便链式调用
  4. long length()获取文件的字节数。
  5. String[]  list()获取该对象表示的路径下的子路径。
  6. listFiles(FileFilter filter)带过滤器的获取,FileFilter是一个接口,java没有提供实现类。可自定义一个过滤器。

递归遍历和删除指定目录下的文件:

public class FileTest {
	
	public static void main(String[] args) {
		File file = new File("").getAbsoluteFile();
		String ext = ".class";
		getAllFile(file,ext);
		System.out.println("======================================");
		deleteAllFile(file,ext);
	}
	
	public static void getAllFile(File file, String ext) {
		File[] fileList = file.listFiles();
		for(File fileItem : fileList) {
				if(fileItem.isFile()) {
					if(fileItem.getName().endsWith(ext)) {
						System.out.println("获取到文件:" + fileItem.getName());
					}
				}else {
					getAllFile(fileItem, ext);
				}
		}
	}
	
	
	public static void deleteAllFile(File file, String ext) {
		File[] fileList = file.listFiles();
		for(File fileItem : fileList) {
			if(fileItem.isFile()) {
				if(fileItem.getName().endsWith(ext)) {
					System.out.println("成功删除" + fileItem.getName());
				}
			}else {
				deleteAllFile(fileItem, ext);
			}
		}
	}
}

测试:

需要注意的是不可以完整遍历windows下的文件,会报空指针异常:

原因:JVM只是运行在windows系统上的一个软件。Winows将其视为外来程序,它不准外来程序来操作其核心内容。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值