File

概述

JDK对它的解释是:An abstract representation of file and directory pathnames。所以File类可以表示文件,也可以表示文件夹。反过来说,文件和文件夹在Java中都会被用File表示。

构造方法

  • File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。它并不会实例一个文件或文件对象。
  • boolean mkdirs():创建此抽象路径名指定的目录,父目录可以不存在。同时所有父目录上不能存在无后缀但名称相同的文件。如存在文件a,不能再创建文件夹a
  • boolean mkdir():创建此抽象路径名指定的目录,父目录需要存在。 同时父目录上不能存在无后缀但名称相同的文件。如存在文件a,不能再创建文件夹a
  • boolean createNewFile():当且仅当不存在且父目录存在时创建具有此抽象路径名指定名称的文件。
  • boolean delete():删除此抽象路径名表示的文件或目录。
  • boolean exists():测试此抽象路径名表示的文件或目录是否存在。
  • String getName():返回由此抽象路径名表示的文件或目录的名称(Web开发中会用到)。
  • boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录。
  • boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
  • String[] list():返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
  • boolean renameTo(File dest):重新命名此抽象路径名表示的文件。比如:D:\\aaaaa\\aaa.txt renameTo D:\\aaaaa\\bbb.txt,但是D:\\aaaaa\\aaa.txt renameTo D:\\aaaaa.txt就不行。

案例

打印某文件夹下所有文件:深度优先和广度优先两种方式。

private static void print(File file) {
		if(!file.isDirectory()) {
			System.out.println(file);
			return;
		}
		String[] list = file.list();
		//这里需要加上判空,因为如果权限不够,会返回null
		if(list != null)
			for(String e : list) {
				if(!file.isHidden())
					print(new File(file.getAbsolutePath() + File.separator + e));
			}
	}
	private static void print2(File file) {
		String []arr = new String[10100];
		int front = 0, end = 0;
		arr[end++] = file.getAbsolutePath();
		while(front < end){
			if(file.isFile()) {
				System.out.println(file);
			}else {
				String []list = file.list();
				for(String e : list){
					arr[end++] = file.getAbsolutePath() + File.separator + e;
				}
			}
			if(++front != end)
				file = new File(arr[front]);
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值