File

1.文件
file:文件
directory:文件夹/目录
path:路径

2.路径
1) windows平台:.\docs\1.docx
Linux/unix平台: ./docs/1.docx
所以为了使用不同环境的写法,应使用:“d:” + File.separator + “docs”+ File.separator + “1.docx”
2)绝对路径:是一个完整的路径,以盘符(c)开始的路径 如:c:\Users\itcast
相对路径:是一个简化的路径,相当于当前项目的根目录 如:123.txt
注意:路径是不区分大小写;
路径中的名称分隔符Windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠。

3.File的构造方法
1)File(String pathname) 通过将给定路径名字字符串装换为抽象路径名来创建一个新的File实例
2) File(String parent, String child)
好处:父路径和子路径,可以单独书写,使用起来非常灵活,父路径和子路径都可以变化。
3)File(File parent, String child)
好处:父路径是File类型,可以使用File类的方法对路径进行一些操作,再使用路径创建对象。

4.常用的方法
1)public String getAbsolutePath();
返回此File的绝对路径名字字符串。
2)public String getPath();
返回构造方法中传递的路径。
3)public String getName();
返回的就是构造方法传递路径的结尾部分。
4)public long length();
返回的是构造方法指定的文件的大小,以字节为单位。
注意:文件夹是没有大小概念的,不能获取文件夹的大小;
如果构造方法中给出的路径不存在,那么length方法返回0。
5)public boolean exists();
判断构造方法中的路径是否存在。
6)public boolean isDirectory();
判断该文件是否是文件夹。
7)public boolean isFile();
判断该文件是否是文件。
8)public boolean createNewFile();
创建一个新的文件。
9)public booolean mkdir();
创建单级文件夹。
10) public boolean mkdirs();
创建多级文件夹。
11)public boolean delete();
删除构造方法路径中给出的文件/文件夹。
12)File类遍历目录功能
(1)public String[] list(); 返回一个String数组。
(2)public File[] listFiles(); 返回一个File数组。
都表示该File目录中的左右子文件目录。
注意:list方法和listFiles方法遍历的是构造方法中给出的目录;
如果构造方法中给出的目录不存在,会抛出空指针异常;
如果构造方法中给出的路径不是一个目录,也会抛出空指针异常。

5.递归打印多级目录

public static void getAllFile(File dir) {
		System.out.println(dir);//打印被遍历的目录名称
		File[] files = dir.listFiles();
		for(File f : files) {
			//对遍历得到的File对象f进行判断,判断是否是文件夹
			if(f.isDirectory()) {
				//f是一个文件夹,则继续遍历这个文件夹
				//我们发现getAllFile方法就是传递文件夹,遍历文件夹的方法
				//所以直接调用getAllFile方法即可:递归(自己调用自己)
				getAllFile(f);
			}else {
				//f是一个文件,直接打印即可
				System.out.println(f);
			}
		}
	}

6.使用过滤器显示指定类型的文件

public static void main(String[] args) {
		File dir = new File("src" + File.separator + "File");
		File[] subs = dir.listFiles(new FileFilter() {
			@Override
			public boolean accept(File sub) {
				return sub.getName().endsWith(".java");//.txt
				//返回true,表示将当前file对象保留
			}
		});
		for(File sub : subs) {
			System.out.println(sub.getName());
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值