黑马程序员——Java中File类笔记,涉及递归思想、过滤器

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------



目录:   File类概述


   递归的思想概述


    过滤器概述


一,File类概述


1, File类的概述
文件和目录路径名的抽象表示形式


2,构造方法
//通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
public File(String pathname)
//根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
public File(String parent,String child)
//根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
public File(File parent,String child)


File类的成员方法


1)创建功能
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
示例:

/*
 * 创建文件
 * */
	public static void method() throws IOException{
		//创建文件类对象
		File file = new File("D:\\abc\\123.txt");
		//创建文件.文件对象调用方法  createNewFile();返回
		boolean b = file.createNewFile();
		//创建成功返回true
		System.out.println(b);
	}
/*创建文件夹
 * 
 * */
	public static void method_1(){
		File file = new File("D:\\aaa\\bb\\c");
		boolean b = file.mkdirs();
		System.out.println(b);
	}

2)删除功能
public boolean delete()


3)重命名功能(复制功能)


public boolean renameTo(File dest)
示例:

public static void method_2(){
		//源文件路径
		File file = new File("D:\\abc\\456.txt");
		//目标文件路径
		File file1 = new File("D:\\aaa\\456.txt");
		//出现了剪切功能
		//判断该被封装对象中的内容是不是文件夹,是返回true
		boolean b = file.renameTo(file1);
		//判断被封装对象中是不是存在路径
		boolean b1 = file.exists();
		
		System.out.println(b1);
		
	}

4)判断功能
//是否为文件夹
public boolean isDirectory()
//是否为文件
public boolean isFile()
//是否存在
public boolean exists()
//是否为可读文件
public boolean canRead()
//是否为可写
public boolean canWrite()
//是否隐藏
public boolean isHidden()




5)基本获取功能
//获取绝对路径字符串
public String getAbsolutePath()
//返回的是File对象.
public File getAbsoluteFile()
//将构造方法中的路径变为字符串
public String getPath()
//获区路径中的最后部位的名字
public String getName()
//获取构造方法中封装的文件的长度
public long length()
//获取文件最后被修改的时间
public long lastModified()


示例

public static void method_4(){
		File file = new File("D:\\abc\\11.txt");
		String n =file.getName();
		String s = file.getPath();
		System.out.println(n);
		System.out.println(s);
	}

6)高级获取功能
//获取对象中封装的路径下面的全部内容(包括文件夹以及文件)
public String[] list()
//获取对象中封装的路径下面的全部内容及对应的路径(包括文件夹以及文件)
public File[] listFiles()




二,递归的思想概述

方法定义中调用方法本身的现象
递归注意实现
要有出口,否则就是死递归
次数不能太多,否则就内存溢出
构造方法不能递归使用


示例:

/**
 * 递归法  遍历全目录:
 * 
 * */
	public static void diguiAll(File file){
		
		File [] lisfile = file.listFiles();
		
		//遍历存储了 文件与文件夹内容的  文件类数组
		for(File f : lisfile){
			if(f.isDirectory()){
				//如果是文件,则再次调用递归方法
				diguiAll(f);
			}else{
			//打印文件	
			System.out.println(f);
			}
		}
		//直接打印    文件对象 file  得到的结果为 文件夹名字.
		//省略此语句,则递归出来的结果中没有文件夹名字
		System.out.println(file);
	}
示例:
/**
 * 递归删除目录
 * 
 * 
 * */
	public static void deleteDir(File file){
		//把文件夹  文件 放进  文件类型的数组里.通过listFile()方法
		File[] files = file.listFiles();
		//遍历
		for(File f : files){
			//判断是不是文件
			if(f.isDirectory()){
				//是文件夹,则递归调用该方法
				deleteDir(f);
			}else{
				//是文件时,直接删除
				f.delete();
			}
		}
		//删除空文件夹
		file.delete();
	}

三,过滤器概述


实现过滤器基类FileFilter,并重写accept()方法;

示例

/**
 * 获取目录中,指定类型的文件 (需要调用过滤器类FileFilter)
 * 
 * */
	public static void method_5(){
		File file = new File("D:\\abc");
		//获取目录下的指定类型的文件,参数可以传递过滤器对象(自定义的).
		//返回值是File类的数组,其中存储了所以指定类型的文件
		File[] files = file.listFiles(new FileFilterJpg());
		for(File f : files){
			System.out.println(f);
		}
	}
/*
自定义过滤器

*/
//该自定义过滤器类,实现过滤器基类,并重写accept()方法;
public class FileFilterJpg implements  FileFilter{
	
	//重写accept()方法.参数为File 类对象:封装的是路径的名字
	public  boolean accept(File pathname){
		
		//取出对象中路径的名字,getname()返回的是字符串
		String name = pathname.getName();
		
		//endswith()返回的是波尔型
		return name.endsWith(".jpg");
		
		//不区分大小写时
//		return name.toLowerCase().endsWith(".jpg");
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值