java基础 —— File类的概述和构造方法

本文深入讲解Java中的File类,涵盖构造方法、创建、重命名、删除、判断和获取功能,以及文件名称过滤器的使用。通过示例代码,帮助读者理解如何操作文件和目录。

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

File类的概述和构造方法

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。

File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创建一个File对象。

通过给定的父抽象路径名和子路径名字符串创建一个新的 File实例。

  • A:构造方法

    • File(String pathname):根据一个路径得到File对象
    • File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
    • File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
  • C:案例演示

    • File类的构造方法
package com.heima.file;

import java.io.File;


public class Demo1_File {

	/**
	 * File(String pathname):根据一个路径得到File对象
	 * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
	 * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
	 */
	public static void main(String[] args) {
		//demo1();
		//demo2();
		File parent = new File("F:\\video");
		String child = "001_今日内容.avi";
		File file = new File(parent, child);
		System.out.println(file.exists());  // file.exists():判断是否存在
		System.out.println(parent.exists());
	}

	public static void demo2() {
		String parent = "F:\\video";
		String child = "001_今日内容.avi";
		File file = new File(parent,child);
		System.out.println(file.exists());
	}

	public static void demo1() {
		File file = new File("F:\\video\\001_今日内容.avi");
		System.out.println(file.exists());
		
		File file2 = new File("xxx.txt");
		System.out.println(file2.exists());
		
		File file3 = new File("yyy.txt");
		System.out.println(file3.exists());
	}
}

File类的创建功能

  • A:创建功能
    • public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
    • public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
    • public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
  • B:案例演示
    • File类的创建功能
package com.heima.file;

import java.io.File;
import java.io.IOException;

public class Demo2_FileMethod {

	public static void main(String[] args) throws IOException {
		//demo1();
		File dir1 = new File("aaa");
		System.out.println(dir1.mkdir());
		
		File dir2 = new File("bbb.txt");				//这样写是可以的,文件夹也是可以有后缀的
		System.out.println(dir2.mkdir());
		
		File dir3 = new File("ccc\\ddd");
		System.out.println(dir3.mkdirs()); 				//创建多级目录
	}

	public static void demo1() throws IOException {
		File file = new File("yyy.txt");
		System.out.println(file.createNewFile());			//如果没有就创建,返回true

	}

}

注意事项:

	* 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

File类的重命名和删除功能

  • A:重命名和删除功能
    • public boolean renameTo(File dest):把文件重命名为指定的文件路径
    • public boolean delete():删除文件或者文件夹
  • B:重命名注意事项
    • 如果路径名相同,就是改名。
    • 如果路径名不同,就是改名并剪切。
  • C:删除注意事项:
    • Java中的删除不走回收站。
    • 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
	File file1 = new File("yyy.txt");
		System.out.println(file1.delete());
	File file3 = new File("ccc");					//如果删除一个文件夹,那么文件夹必须是空的
		System.out.println(file3.delete());

public static void demo1() {
		File file1 = new File("ooo.txt");
		File file2 = new File("D:\\xxx.txt");
		System.out.println(file1.renameTo(file2));
	}

File类的判断功能

  • A:判断功能
    • public boolean isDirectory():判断是否是目录
    • public boolean isFile():判断是否是文件
    • public boolean exists():判断是否存在
    • public boolean canRead():判断是否可读
    • public boolean canWrite():判断是否可写
    • public boolean isHidden():判断是否隐藏
  • B:案例演示
    • File类的判断功能
public static void main(String[] args) {
		//demo1();
		File file = new File("zzz");
		file.setReadable(false);
		System.out.println(file.canRead()); 			//windows系统认为所有的文件都是可读的
		file.setWritable(true);
		System.out.println(file.canWrite()); 			//windows系统可以设置为不可写
		
		File file2 = new File("aaa.txt");
		System.out.println(file2.isHidden());			//判断是否是隐藏文件
		System.out.println(file.isHidden());
	}

	public static void demo1() {
		File dir1 = new File("ccc");
		System.out.println(dir1.isDirectory());			//判断是否是文件夹
		
		File dir2 = new File("zzz");
		System.out.println(dir2.isDirectory());
		
		System.out.println(dir1.isFile());				//判断是否是文件
		System.out.println(dir2.isFile());
	}

File类的获取功能

  • A:获取功能
    • public String getAbsolutePath():获取绝对路径
    • public String getPath():获取路径
    • public String getName():获取名称
    • public long length():获取长度。字节数
    • public long lastModified():获取最后一次的修改时间,毫秒值
    • public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
    • public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
  • B:案例演示
    • File类的获取功能
package com.heima.file;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo5_FileMethod {

	/**
	 * * A:获取功能
		* public String getAbsolutePath():获取绝对路径
		* public String getPath():获取路径
		* public String getName():获取名称
		* public long length():获取长度。字节数
		* public long lastModified():获取最后一次的修改时间,毫秒值
		* public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
		* public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 
	 */
	public static void main(String[] args) {
		//demo1();
		File dir = new File("F:/双元课堂/day19/video");
		String[] arr = dir.list();						//仅为了获取文件名
		
		for (String string : arr) {
			System.out.println(string);
		}
		
		File[] subFiles = dir.listFiles();
		
		for (File file : subFiles) {					//获取文件对象
			System.out.println(file);
		}
 	}

	public static void demo1() {
		File file1 = new File("ccc.txt");
		File file2 = new File("D:\\双元课堂\\day19\\ccc.txt");
		//System.out.println(file1.getAbsolutePath());			//获取绝对路径
		//System.out.println(file2.getAbsolutePath());
		
		//System.out.println(file1.getPath());					//获取构造方法中传入路径
		//System.out.println(file2.getPath());
		
//		System.out.println(file1.getName());					//获取文件或者文件的名字
//		System.out.println(file2.getName());
//		
//		System.out.println(file1.length());
		
		Date d = new Date(file1.lastModified());				//文件的最后修改时间
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		System.out.println(sdf.format(d));
	}

}

文件名称过滤器的概述及使用

  • A:文件名称过滤器的概述
    • public String[] list(FilenameFilter filter)
    • public File[] listFiles(FileFilter filter)
  • B:文件名称过滤器的使用
    • 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
  • C:源码分析
    • 带文件名称过滤器的list()方法的源码

File类(递归)

  • 5的阶乘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值