文章目录

一、为什么要引入File类

二、创建File对象

三、创建文件目录功能

四、File类的常用方法

五、File类删除功能

六、遍历目录

一、为什么要引入File类:

  • I/O流可以对文件的内容进行读写,但对文件本身的操作是无法通过I/O流实现的,这里JDK中提供了File类
  • 该类封装了一个路径,提供了一系列的方法用于操作该路径所指向的文件。

二、创建File对象

File srcFile = new File("D:\\wokspace1\\firstwork");

三、创建文件目录功能

  • 在创建的时候必须抛出异常:throws IOException
		创建一个文件createNewFile(),返回boolean类型
		File f1 = new File("D:\\wokspace1\\firstwork\\src\\firstwork\\java.txt");
		System.out.println(f1.createNewFile());
		创建一个目录mkdir(),返回boolean类型
		File f2 = new File("D:\\wokspace1\\firstwork\\src\\firstwork\\javaEE");
		System.out.println(f2.mkdir());
		创建一个多级目录mkdirs(),返回boolean类型
		File f3 = new File("D:\\wokspace1\\firstwork\\src\\firstwork\\javaEE\\giao");
		System.out.println(f3.mkdirs());

四、File类的常用方法

		测试此抽象路径名表示的File是否为目录
		System.out.println(f.isDirectory());
		
		测试此抽象路径名表示的File是否为文件
		System.out.println(f.isFile());
		
		测试此抽象路径名表示的File是否存在
		System.out.println(f.exists());
		
		返回此抽象路径名的绝对路径名字符串(绝对路径)
		System.out.println(f.getAbsolutePath());
		
		将此抽象路径名转换为路径名字符串(相对路径)
		System.out.println(f.getPath());
		
		返回由此抽象路径名表示的文件或目录名称
		System.out.println(f.getName());
		File f = new File("D:\\wokspace1\\firstwork");
		
		列出指定目录的全部内容,只是列出名称
		String[] strArray = f.list();
		for(String str :strArray) {
   
			System.out.println(str);
		}
		
		System.out.println("--------");

		File对象所有子文件和子目录的File数组,对比String的优点是:可以调用File类的方法
		File[] fileArray = f.listFiles();
		for(File file : fileArray) {
   
		if(file.isFile()) {
   
			System.out.println(file.getName());
						}
		}

五、File类删除功能

  • delete():删除由此抽象路径名表示的文件或目录
    注意事项:
  • 如果一个目录中有内容(目录,文件),不能直接删除。先删除目录中的内容,最后才能删除目录
  • 通过java虚拟机删除而不走回收站,删除的时候需谨慎!

六、遍历目录

  1. 根据指定的路径创建一个File对象
  2. 定义一个方法,用于获取给定目录下的所有内容,参数为第一步创建的File对象
  3. 获取给定的File目录下所有文件或者目录的File数组
  4. 遍历该File数组,得到每个File对象
  5. 判断该File对象是否是目录
  6. 不是,获取绝对路径
public class File {
   
	public static void main(String[] args) throws IOException {
   
		File srcFile = new File("D:\\wokspace1\\firstwork");
		getAllFilePath(srcFile);
		
	}
	public static void getAllFilePath(File srcFile) {
   
		File[] fileArray = srcFile.listFiles();
		if(fileArray!=null) {
   
			for(File file :fileArray) {
   
				if(file.isDirectory()) {
   
					getAllFilePath(file);
				}else {
   
					System.out.println(file.getAbsolutePath());
				}
			}
		}
	}

}