JAVASE File类api解析

File类静态属性

api  File静态属性

	/**
	 * 静态属性
	 * 1.static String pathSeparator  与系统相关的路径分隔符字符,为方便起见,表示为字符串。  
  	 * 2.static char pathSeparatorChar  与系统相关的路径分隔符。  
     	 * 3.static String separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。  
     	 * 4.static char separatorChar  与系统相关的默认名称分隔符。  
	 */
	public static void fun1() {
		System.out.println(File.pathSeparator);// windows ; Linux :
		System.out.println(File.pathSeparatorChar);
		System.out.println(File.separator);// windows \  Linux /
		System.out.println(File.separatorChar);
	}

File类构造方法

File 类 api 构造方法

	/**
	 * 构造方法
	 * 1.File(File parent, String child)  从父抽象路径名和子路径名字符串创建新的 File实例。 
	 * 好处:方便单独操作父子路径 
         * 2.File(String pathname)  通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。  
     	 * 3.File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。
    	 * 好处:父路径可以直接调用File类的方法  
   	 * 4.File(URI uri)  通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。  
    	 * 
  	 * 注:
     	* 1.windows中路径或文件名不区分大小写
    	* 2.绝对路径:从盘符开始的固定路径(在系统中具有唯一性)
     	* 	相对路径:相对于某个位置
     	* 3.两个参数:方便利用传参的形式实例化
     	* 	File,String两种:方便不同的调用方式
	 */
	public static void fun2() {
		// 2
		File f1 = new File("c:\\abc");
		// 3
		File f2 = new File("c:", "abc");
		// 1
		File f3 = new File(f1,"a");
		System.out.println(f3);
	}

File类常用方法

创建功能

在这里插入图片描述
路径创建

/**
	 * 创建功能
	 * 1.boolean createNewFile()  
	 * 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
	 * 2.boolean mkdir() 
	 * 创建由此抽象路径名命名的目录。(只能创建最后一个文件夹)  
     * 3.boolean mkdirs() 
     * 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。 (可以创建多级文件夹)
     * 
     * 如果不存在则进行创建并返回true
     * 如果已存在则返回false
	 * @throws IOException 
	 */
	public static void fun3() throws IOException {
		boolean b = new File("d:\\abc\\cba").createNewFile();
		
	}

删除功能

file api 删除

	/**
	 * 删除功能
	 * boolean delete()  删除由此抽象路径名表示的文件或目录。 
	 * 注:
	 * 1.被删除的内容在File构造函数中已给出
	 * 2.删除成功返回true,失败返回false
	 * 3.删除方法不去回收站,直接从硬盘中删除(删除有风险,运行需谨慎)
	 */
	public static void fun4() throws IOException {
		File file = new File("d:\\abc\\cba");
		file.createNewFile();
		boolean b = file.delete();
	}

获取功能

获取方法
获取方法

	/**
	 * 获取功能
	 * 1.long length()  返回由此抽象路径名表示的文件的长度。
	 * 	注:文件夹没有长度
	 * 2.  返回父路径
	 * (1)String getParent()
	 * 		返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名为父目录,则返回null。
	 * (2)File getParentFile() 
	 * 		返回此抽象路径名的父,或抽象路径名 null如果此路径名没有指定父目录。 
	 * 3.获取绝对路径:
	 * (1)File getAbsoluteFile() 返回此抽象路径名的绝对形式。  
	 * (2)String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 
	 * 4.
	 * (1)String getName() 返回由此抽象路径名表示的文件或目录的名称。  
	 * (2)String getPath() 将此抽象路径名转换为路径名字符串。  
	 * 		效果同toString()
	 */
	public static void fun5() {
		File file = new File("d:\\abc\\plief.jpg");
		// 1
		long length = file.length();
		// 2
		String par = file.getParent();
		File fp = file.getParentFile();
		// 3
		File file2 = file.getAbsoluteFile();
		String path = file.getAbsolutePath();
		// 4
		String name = file.getName();
		String path1 = file.getPath();
		
		System.out.println(name);
		System.out.println(path1);
	}

判断功能

判断功能
判断功能

/**
	 * 判断功能
	 * 1.boolean isAbsolute()  测试这个抽象路径名是否是绝对的。  
	 * 2.boolean isDirectory()  测试此抽象路径名表示的文件是否为目录。  
	 * 3.boolean isFile()  测试此抽象路径名表示的文件是否为普通文件。  
	 * 4.boolean isHidden()  测试此抽象路径名命名的文件是否为隐藏文件
	 * 5.boolean equals(Object obj)  测试此抽象路径名与给定对象的相等性。  
	 * 6.boolean exists()  测试此抽象路径名表示的文件或目录是否存在。  
     *
	 */
	public static void fun6() {
		File file = new File("d:\\abc");
		File file1 = new File("d:\\abc");
		boolean b = file.equals(file1);
		System.out.println(b);
	}

list功能

在这里插入图片描述

/**
	 * list获取功能
	 * 1.String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。  
	 * 2.File[] listFiles()  返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
	 * 3.static File[] listRoots()  列出可用的文件系统根。   
	 * 
	 *  注:在获取指定目录下的文件或文件夹时必须满足:
	 *  1.指定目录必须存在
	 *  2.指定的必须是目录,否则返回数组为空,出现NullPointerException
	 */
	public static void fun7() {
		File[] files1 = File.listRoots();
		File[] files2 = new File("d:\\").listFiles();
		for(File file : files2) {
			System.out.println(file);
		}
	}

过滤功能

过滤方法
过滤方法

import java.io.File;
import java.io.FileFilter;
/**
 * 自定义过滤器:实现接口FileFilter
 * @author 18875
 *
 */
public class MyFilter implements FileFilter{
	/**
	 * 重写接口方法:
	 * 以.java结尾的文件名返回true(放入list中),否则返回false
	 * 返回true的file对象会被添加入list中
	 */
	@Override
	public boolean accept(File pathname) {
		return pathname.getName().endsWith(".java");
	}
}
import java.io.File;

/**
 * 文件过滤:
 * 1.File[] listFiles(FileFilter filter) 
 * 	返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
 * 2.File[] listFiles(FilenameFilter filter) 
 * 	返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。  
 * @author 18875
 * 
 * 
 * 过滤器原理:
 * 1.listFile()遍历目录的同时,获取文件名全路径
 * 2.调用过滤器的方法accept(),将获取到的路径传递给accept方法参数pathname
 * 3.在accept方法中进行判断,如果为符合给定要求返回true,则将其存入数组中,否则返回false不放入数组
 */
public class FileDemo2 {
	public static void main(String[] args) {
		File file = new File("D:\\workspace\\myspace\\JAVA_Day19h8\\src\\vp\\lu\\demo1");
		File[] listFiles = file.listFiles(new MyFilter());
		for(File f : listFiles) {
			System.out.println(f);
		}
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值