File类介绍

博客介绍了File类,它可将文件或目录封装,用于增删改查等操作。详细讲解了File类的三种构造方法,如根据路径、父路径与子路径等创建对象。还阐述了其重要方法,包括创建、重命名、删除、判断和获取功能等,最后提及过滤器在list()和listFiles()方法中的使用。

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

一、概念

将文件或者目录封装到一个类,这个类就是File类,然后可以对这个类对象进行各种操作,增删改查等等,也就是直接与计算机相关联的操作。

 

二、File类的构造方法

1、File(String pathname)

根据一个目录或文件得到一个File对象

File file = new File("路径");  如:new File("D://file.txt")

2、File(String parent, String child)

根据一个目录和一个子文件/目录得到File对象

File file = new File("父路径","子路径");  如:new File("D://","file.txt")

3、File(File file, String child)

根据一个父File对象和一个子文件/目录得到File对象

File file = new File("D://");

File file = new File(file, "file.txt");

 

三、File类的重要方法

封装后,得到的file对象存在的操作方法,操作成功返回true,失败返回false

1、创建文件与文件夹操作

public boolean createNewFile()         创建文件操作,如果存在这样的文件就不创建了

public boolean mkdir()                       创建文件夹,如果存在这样的文件夹就不创建了

public boolean mkdirs()                      创建文件夹,如果父路径不存在,也会帮你创建出来

 

2、重命名和删除功能

public boolean renameTo(File dest)   把文件重命名为指定文件路径,如果路径相同就是改名,不同就是改名并剪切到dest路径

public boolean delete()                       删除文件或文件夹,但是注意删除不走回车站,而且只能删除空文件夹(掌握)

 

3、判断功能

public boolean isDirectory()                判断是否是目录

public boolean isFile()                         判断是否是文件

public boolean isExists()                      判断是否存在(目录、文件)

public boolean canRead()                    判断是否可读(Windows系统下都是可读的,只能在其它系统使用)

public boolean canWrite()                   判断是否可写

public boolean isHidden()                   判断是否隐藏

 

4、获取功能(重要)

public String getAbsolutePath()            获取绝对路径(全路径,包括根路径,文件所在路径)

public String getPath()                          获取路径(当前路径File指定的那个路径)

public String getName()                        获取文件名称

public long length()                               获取长度,字节数

public long lastModified()                      获取文件最后一次的修改时间,毫秒值

public String[] list()                                 获取指定目录下的所有文件或者文件夹的名称数组(仅获取文件名称,不包括路径)

public File[] listFiles()                             获取指定目录下的所有文件或者文件夹的File数组(获取整个路径,如:D://..txt)

四、过滤器的使用

过滤器在list()、listFiles()都可以使用,直接在这两个方法里面创建一个匿名内部类(new ),重写里面的方法即可

package com.xue.file;

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

/**
 * demo1方法:判断D盘目录下是否有.txt文件,有则输出其名称
 * demo2方法:过滤掉除.txt文件外的其它文件(自定义过滤器)
 * @author xue
 *
 */
public class Test1 {
	public static void main(String[] args) throws IOException {
		File file = new File("D:\\");	//将D盘封装成一个文件
		demo1(file);					//判断D盘目录下是否有.txt文件,有则输出其名称
		
		demo2(file);					//过滤掉除.txt文件外的其它文件
	}


	/**
	 * 判断D盘目录下是否有.txt文件,有则输出其名称
	 * @param file
	 */
	private static void demo1(File file) {
		String[] list = file.list();							//获取D盘里面的所有目录及文件名
		for (String string : list) {			
			if (string.endsWith(".txt")) {						//后缀是.txt的文件则输出名称
				System.out.println(string);
			}
		}
	}
	
	/**
	 * 过滤掉除.txt文件外的其它文件(自定义过滤器)
	 * @param file
	 */
	private static void demo2(File file) {
		File[] listFiles = file.listFiles(new FilenameFilter() {		//匿名内部类重写accept方法
			
			@Override
			public boolean accept(File dir, String name) {
					File file = new File(dir, name);					//将dir文件封装成对象
				return file.isFile() && file.getName().endsWith(".txt");//符合是文件并且以.txt结尾的返回给File数组
			}
		});
		for (File file2 : listFiles) {
			System.out.println(file2.getName());						//输出自定义过滤器过滤后的结果
		}
	}

}

 

JAVA的File是一个用于处理文件和目录的核心,位于java.io包中。它提供了多种方法来创建、删除、查找文件和目录的属性信息。以下是一些常用的方法: 1. **创建文件或目录**: - `createNewFile()`: 创建一个新的空文件。 - `mkdir()`: 创建一个新的目录。 - `mkdirs()`: 创建一个新的目录,包括任何必要但不存在的父目录。 2. **删除文件或目录**: - `delete()`: 删除文件或目录。 - `deleteOnExit()`: 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 3. **获取文件或目录的信息**: - `exists()`: 判断文件或目录是否存在。 - `isFile()`: 判断是否是文件。 - `isDirectory()`: 判断是否是目录。 - `getName()`: 获取文件名。 - `getPath()`: 获取文件路径。 - `getAbsolutePath()`: 获取文件的绝对路径。 - `length()`: 获取文件的长度。 - `lastModified()`: 获取文件最后修改的时间。 4. **重命名文件或目录**: - `renameTo(File dest)`: 重命名文件或目录。 5. **列出目录中的文件和子目录**: - `list()`: 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 - `listFiles()`: 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件和目录。 以下是一个简单的示例,展示了如何使用File: ```java import java.io.File; import java.io.IOException; public class FileExample { public static void main(String[] args) { // 创建一个File对象 File file = new File("example.txt"); try { // 创建一个新文件 if (file.createNewFile()) { System.out.println("File created: " + file.getName()); } else { System.out.println("File already exists."); } } catch (IOException e) { System.out.println("An error occurred."); e.printStackTrace(); } // 检查文件是否存在 if (file.exists()) { System.out.println("File path: " + file.getAbsolutePath()); System.out.println("File name: " + file.getName()); System.out.println("File size: " + file.length() + " bytes"); } // 删除文件 if (file.delete()) { System.out.println("File deleted successfully."); } else { System.out.println("Failed to delete the file."); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值