IO流(一)

IO流的基础知识点梳理

一.File类
1.概述
把文件和目录路径名的抽象表示形式(把文件系统中的字符串路径封装成为java对象)
2.创建对象(三种创建形式)

public static void main(String[] args) {
		/**
			File(String pathname) 
			          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 
			           
			File(String parent, String child) 
			          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 
			          
		 	File(File parent, String child) 
			          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
		 */
		//方式一:创建file对象,引用指向D:\Files\JavaFiles\Java2302位置
		File file01 = new File("D:\\Files\\JavaFiles\\Java2302");
		System.out.println(file01);
		
		// 方式二:在指定父目录中再次创建子目录
		String pathParent = "D:\\Files\\JavaFiles\\Java2302";
		File file02 = new File(pathParent, "Day18");
		System.out.println(file02);
		
		File file03 = new File(file01, "Day19");
		System.out.println(file03);
		
		File file04 = new File("D:\\work\\Code\\Java\\Java2302\\Day19\\hello.txt");
		System.out.println(file04);
		
		// 方式三:使用相对路径创建file对象
		File file05 = new File("hello.txt");
		System.out.println(file05);
		System.out.println(file05.getAbsolutePath());
		
	}

3.常用的方法


boolean mkdir()
创建此抽象路径名指定的目录。
boolean mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。


boolean delete()
删除此抽象路径名表示的文件或目录。
void deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

boolean renameTo(File dest)
重新命名此抽象路径名表示的文件。

// 创建File对象,路径指向D:\Files\JavaFiles\Java2302
		File file = new File("D:\\Files\\JavaFiles\\Java2302");
		
		// 创建文件夹
		File file2 = new File(file, "Day22");
		System.out.println(file2.exists());	// 判定路径是否存在
		
		// 创建目录
		file2.mkdir();
		
		File file3 = new File(file, "Day23\\笔记");
		file3.mkdirs();
		
		// 创建文件
		File file4 = new File(file, "Day24\\资料\\hehe.txt");
		file4.createNewFile();
		// file4.delete();
		
		// 如果文件夹中存在内容,不能直接删除
		File file5 = new File(file, "Day24\\资料\\bb");
		file5.delete();
		
		for (int i = 0; i < 10; i++) {
			System.out.println("倒计时:" + (10-i));
			Thread.sleep(1000);
		}
		
		// 退出时候删除
		File file6 = new File(file, "Day24\\资料\\hehe.txt");
		file6.deleteOnExit();
		System.out.println("删除成功");
	}

查询数据

// 创建File对象,路径指向D:\Files\JavaFiles\Java2302
		File file = new File("D:\\Files\\JavaFiles\\Java2302");
		System.out.println(file.exists());
		
		// 判定是否绝对路径
		System.out.println(file.isAbsolute());
		
		File file2 = new File("hello.txt");
		System.out.println(file2.isAbsolute());
		
		// 判定是文件还是文件夹
		System.out.println(file.isDirectory());
		System.out.println(file.isFile());
		
		File file3 = new File(file, "hihi.txt");
		System.out.println(file3.exists());
		System.out.println(file3.isHidden());
		System.out.println(file3.length());
		System.out.println(file3.lastModified());
		
		Date date = new Date(1678330557123L);
		System.out.println(date);
		
		// 获取文件和文件夹
		File[] files = file.listFiles();
		for (File f : files) {
			if (f.isFile()) {
				System.out.println(f);
			}
		}

四.递归获取所有的文件夹和文件目录

/**
	 *	查看所有文件
	 * @param file	
	 */
	public static void lookFiles(File file) {
		// 获取file对象中的所有文件和文件夹
		File[] files = file.listFiles();
		// 遍历获取到的所有内容
		for (File f : files) {
			// 判定f是文件还是文件夹
			if (f.isFile()) {
				// 文件,直接输出
				System.out.println("\t文件"+f);
			} else {
				// 输出文件夹
				System.out.println("文件夹:" + f);
				// 文件夹,再次调用方法读取内容
				lookFiles(f);
			}
		}
	}

测试类

public static void main(String[] args) {
		/**
		 *	获取指定目录中所有的文件和文件夹【包括子级】
		 */
		File file = new File("D:\\Files\\JavaFiles\\Java2302");
		lookFiles(file);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值