黑马程序员——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
- 黑马程序员——Java中File类笔记,涉及递归思想、过滤器
- 黑马程序员_JAVA笔记之(File类,过滤器,递归练习)
- 黑马程序员java学习—File类,Properties类和递归思想
- 黑马程序员——07File类,文件过滤器FilenameFilter以及递归
- 黑马程序员—Java中File类学习笔记(一)
- 黑马程序员——高新技术---Java基础-IO流_File类,递归思想
- 黑马程序员_学习笔记第20天——File类、递归、Properties、打印流
- 黑马程序员_学习笔记第19天——File类、递归、Properties、打印流
- 黑马程序员—File类学习笔记
- 黑马程序员————java基础--------IO输入输出之异常、File类和递归
- 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流
- 黑马程序员-递归思想
- 黑马程序员--java File类课程笔记
- 黑马程序员-Java笔记:File类
- 黑马程序员——JAVA笔记——File
- 【黑马程序员】Java基础09:File类和递归
- 黑马程序员---Java基础---异常、File类和递归
- 黑马程序员_java编程思想——递归
- 思考题
- Sublime Text [Decode error - output not utf-8]
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin
- VC资源编辑器里对话框的大小和实际的像素尺寸显示问题
- 黑马程序员-IOS学习笔记(九)分类和扩展
- 黑马程序员——Java中File类笔记,涉及递归思想、过滤器
- UC/OS-II在ARM微处理器上的移植及编译
- Annotation分类
- basename 与 basename_r 函数
- MySQL学习系列10:自定义存储过程和函数
- 在Android程序中使用已有的SQLite数据库
- 2015062708 - 数学与收获
- gcc源码安装-版本4.7.3
- iOS开发中如何更快的实现汉字转拼音