Java文件操作类File

File类:是java中针对文件进行操作的一个类

该类可以根据封装的文件路径对指定的文件或者目录进行相关的操作
该类的构造方法是需要我们传递参数的,该参数就是需要封装的文件路径

	File file = new File("src/FileTest");

上述给的是相对路径,也可以给绝对路径
绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件
相对路径:必须使用取自其他路径名的信息进行解释

我们可以通过该类中的方法进行拿取文件的路径名称或者绝对路径

方法名作用
String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
String getName返回由此抽象路径名表示的文件或目录的名称
		//封装一个路径
		File file = new File("src/FileTest");
		//打印路径
		System.out.println(file.getAbsolutePath());//打印结果:C:\Users\Administrator\eclipse-workspace\Training\src\FileTest
		System.out.println(file.getName());//打印结果:FileTest

通过上述两个方法分别打印出了绝对路径和抽象路径名

我们还可以对路径上的文件进行判断

方法名作用
boolean exists()测试此抽象路径名表示的文件或目录是否存在
boolean isDirectory()测试此抽象路径名表示的文件是否为目录
boolean isFile()测试此抽象路径名表示的文件是否为普通文件
		//封装一个路径
		File file = new File("E:\\Test");
		//判断是否存在
		System.out.println(file.exists());//打印结果:true
		//判断是否为目录
		System.out.println(file.isDirectory());//打印结果:true
		//判断是否是文件
		System.out.println(file.isFile());//打印结果:false

上述方法可以作为条件判断使用

我们也可以通过方法来创建文件和目录

方法名作用
boolean createNewFile()当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件
boolean mkdir()创建由此抽象路径名命名的目录
boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
		//封装一个路径
		File file1 = new File("E:\\Test\\file.txt");
		//创建一个文件
		try {
			System.out.println(file1.createNewFile());//打印结果:true
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//封装一个含不存在目录的文件
		File file2 = new File("E:\\Test\\test");
		//创建一个目录
		System.out.println(file2.mkdir());//打印结果:true
		
		//封装一个含不存在的多级目录
		File file3 = new File("E:\\Test\\Java\\JavaWeb");
		//创建多级目录
		System.out.println(file3.mkdirs());//打印结果:true

注意:如果使用mkdir()创建多级目录的时候会报错哟

我们也可以删除文件或者目录

方法名作用
boolean delete()删除由此抽象路径名表示的文件或目录

注意:如果要删除的文件夹下还有其他的文件或文件夹时无法直接删除

		//封装一个路径
		File file = new File("E:\\Test\\file.txt");
		//删除file.txt文件
		System.out.println(file.delete());//打印结果:true

注意:此删除操作是不可逆的哟

我们还可以获取到路径名和文件的数组

方法名作用
String[] list()返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录
File[] listFiles()返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件
		//封装一个路径
		File file = new File("E:\\Test");
		//获取到文件名的数组
		String[] list = file.list();
		//遍历
		for(String s : list) {
			System.out.println(s);
			/*
			 * 打印结果:
			 * Java
			 * Java
			 */
		}
		
		//获取到文件的数组
		File[] fileList = file.listFiles();
		//遍历数组
		for(File f : fileList) {
			System.out.println(f.getAbsolutePath());
			/*
			 * 打印结果:
			 * E:\Test\Java
			 * E:\Test\test
			 */
		}

通过上述方法,我们可以做一个案例,就是删除整个文件夹的目录和文件
这里就可以使用到递归了

	public static void main(String[] args) {
		//封装路径
		File file = new File("E:\\Test");
		//调用方法进行删除文件
		FileDelete(file);
		/*
		 * 打印结果:
		 * 删除成功:E:\Test\file.txt
		 * 删除成功:E:\Test\Java\java.txt
		 * 删除成功:E:\Test\Java\JavaWeb\hello.txt
		 * 删除成功:E:\Test\Java\JavaWeb
		 * 删除成功:E:\Test\Java
		 * 删除成功:E:\Test\test\world.txt
		 * 删除成功:E:\Test\test
		 */
	}
	
	/**
	 * 
	 * @param file : 得到需要删除的文件路径
	 */
	public static void FileDelete(File file) {
		//获取当前文件的所有文件
		File[] fil = file.listFiles();
		//遍历进行删除
		for(File e : fil) {
			//判断是否是目录,是目录就递归
			if(e.isDirectory()) {
				//调用自己继续删除
				FileDelete(e);
				e.delete();
				System.out.println("删除成功:" + e.getAbsolutePath());
			}else {
				//文件直接删除
				e.delete();
				System.out.println("删除成功:" + e.getAbsolutePath());
			}
		}
	}

通过递归我们就可以删除指定文件夹下的所以文件

今天的分享就到这里了,如果有错误的地方,欢迎大家来指点!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值