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

来源:互联网 发布:蓝牙音频发射器 知乎 编辑:程序博客网 时间:2024/05/22 05:32

------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();//创建成功返回trueSystem.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");//出现了剪切功能//判断该被封装对象中的内容是不是文件夹,是返回trueboolean 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");}


0 0
原创粉丝点击