File类

本文详细介绍了Java中File类,它是文件和目录路径名的抽象表示。阐述了其静态成员变量、构造方法,还说明了文件的创建、删除、重命名等操作,以及文件相关属性功能和遍历方法,最后提到利用递归查询mp4文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

File类
文件和目录路径名的抽象表示形式
静态成员变量
static String separator 名称分隔符
static String pathSeparator 路径分隔符
构造方法
public File(String pathname) pathname文件路径名
public File(String parent,String child) 父路径名 子路径名
public File(File parent,String child) 通过父文件对象和子文件名称构造文件对象

		// public File(String pathname)  pathname文件路径名
		File file = new File("D:\\a.txt");
		System.out.println(file);//D:\a.txt
		
		// public File(String parent,String child) 父路径名 子路径名
		File file2 = new File("D:", "a.txt");
		System.out.println(file2);//D:\a.txt
		
		// public File(File parent,String child)  通过父文件对象和子文件名称构造文件对象
		File file3 = new File(new File("D:"), "a.txt");
		System.out.println(file3);//D:\a.txt

文件的创建
public boolean createNewFile() 若文件不存在则创建新文件
public boolean mkdir() 创建目录
public boolean mkdirs() 创建目录及不存在的父目录
文件的删除
public boolean delete() 删除文件及空目录
文件的重命名
public boolean renameTo(File dest) 重命名为dest

		//在工程目录下创建hello.txt
		File f = new File("hello.txt");
		System.out.println(f);
		System.out.println("createNewFile:" + f.createNewFile());
		
		//在工程目录下创建helloworld文件夹
		File f2 = new File("helloworld");
		System.out.println("mkdir:" + f2.mkdir());
		
		//在工程目录下创建good/boy.txt文件夹
		File f3 = new File("good");
		File f4 = new File(f3, "boy.txt");
		System.out.println("f3.mkdir:" + f3.mkdir());
		System.out.println("createNewFile: " + f4.createNewFile());
		
		//在工程目录下创建aaa/bbb/ccc/ddd/eee.txt
		File f5 = new File("aaa/bbb/ccc/ddd");
		System.out.println("mkdirs:" + f5.mkdirs());
		File f6 = new File(f5, "eee.txt");
		System.out.println("createNewFile:" + f6.createNewFile());
		
		// 删除文件及空目录
		File f = new File("hello.txt");
		System.out.println("delete:" + f.delete());
		
		//重命名
		File f2 = new File("good/boy.txt");
		File dest = new File("good/qwq.txt");
		System.out.println("renameTo:" + f2.renameTo(dest));

文件的相关属性功能
public boolean isFile() 是否文件
public boolean isDirectory() 是否目录
public boolean canRead() 是否可读
public boolean canWrite() 是否可写
public boolean exists() 是否存在
public boolean isHidden() 是否隐藏
public long length() 长度
public String getAbsolutePath() 绝对路径
public String getPath() 定义的路径
public String getName() file名字
public long lastModified() 最后一次修改时间

		File f = new File("aaa/bbb/ccc/ddd/qwq.txt");
		System.out.println("isFile:" + f.isFile());
		System.out.println("isDirectory:" + f.isDirectory());
		System.out.println("canRead:" + f.canRead());
		System.out.println("canWrite:" + f.canWrite());
		System.out.println("exists:" + f.exists());
		System.out.println("isHidden:" + f.isHidden());
		System.out.println("getAbsolutePath:" + f.getAbsolutePath());
		System.out.println("getPath:" + f.getPath());
		System.out.println("getName:" + f.getName());
		System.out.println("lastModified:" + f.lastModified());//1556610167991
		
		Date d = new Date(1556610167991L);
		SimpleDateFormat sda = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String format = sda.format(d);
		System.out.println(format);//2019-04-30 15:42:47

文件的遍历
public String[] list() 返回file下的文件和目录名称(字符串)
public File[] listFiles() 返回file下的文件和目录(文件)
public String[] list(FilenameFilter filter) 根据filter过滤返回file下文件和目录名称
public File[] listFiles(FileFilter filter) 根据filter过滤返回file下文件和目录

		File f = new File("aaa/bbb/ccc/ddd");
		String[] list = f.list();
		for (String lists : list) {
			System.out.println(lists);
		}
		
		File[] listFiles = f.listFiles();
		for (File file : listFiles) {
			System.out.println(file);
		}
		//public String[] list(FilenameFilter filter)  根据filter过滤返回file下文件和目录名称
		File f2 = new File("aaa/bbb/ccc/ddd");
		String[] list2 = f2.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File dir, String name) {
				File f = new File(dir, name);
				String name2 = f.getName();
				return name2.endsWith(".java") && f.isFile();//过滤掉非java文件
			}
		});
		for (String name2 : list2) {
			System.out.println(name2);
		}
		//public  File[] listFiles(FileFilter filter)  根据filter过滤返回file下文件和目录
		File f = new File("aaa/bbb/ccc/ddd");
		File[] files = f.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File pathName) {
				return pathName.getName().endsWith(".java") && pathName.isFile();//过滤掉非java文件
			}
		});
		
		for (File file : files) {
			System.out.println(file);
		}

利用递归查询mp4文件

	public static int num = 0; //定义变量统计文件个数
	
	public static void main(String[] args) {
		
		System.out.println(getAllJavaFile(new File("C:\\")));//查询目标:C盘
	}
	
	public static int getAllJavaFile(File srcFile) {
		
		if (srcFile == null) {
			throw new NullPointerException("文件对象不能为null");
		}
		
		//获取该文件夹下所有的文件和文件夹
		File[] listFiles = srcFile.listFiles();
		
		//获取到每一个文件和文件夹
		if (listFiles != null && listFiles.length != 0) {
			for (File file : listFiles) {
				//判断该对象是文件还是文件夹
				if (file.isDirectory()) {
					getAllJavaFile(file);//使用递归
				} else {
					//判断是否是mp4文件
					if (file.getName().endsWith(".mp4")) {
						num++;
						System.out.println(file.getName());
					}
				}
			}
		}
		return num;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值