Java IO流06:File类和FileFilter接口
2021/9/13 11:04:49
本文主要是介绍Java IO流06:File类和FileFilter接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
File类
File类代表物理盘符中的一个文件或文件夹
其不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性
import java.io.File; import java.io.IOException; import java.util.Arrays; public class Hello{ public static void main(String[] args) throws IOException { //创建文件时必须抛出异常 //File.pathSeparator生成路径分隔符; System.out.println("路径分隔符" + File.pathSeparator); //File.separator生成名称分隔符\ System.out.println("名称分隔符" + File.separator); //先创建File类的对象,才能对文件进行操作 File f1 = new File("1.txt"); File f2 = new File("1"); File f3 = new File("."); //exists()方法判断文件或目录是否存在 //createNewFile()方法创建文件,返回true if (! f1.exists()) { System.out.println(f1.createNewFile()); } //mkdir()方法创建目录,返回true(mkdirs()方法可以创建多级目录) System.out.println(f2.mkdir()); //isDirectory()方法判断是否是目录 System.out.println(f2.isDirectory()); //delete()方法删除文件或目录,返回true(只能删除空目录,多级目录只能删除最里层那个) System.out.println(f2.delete()); //isFile()方法判断是否是文件 System.out.println(f1.isFile()); //getName()方法获取文件名 System.out.println(f1.getName()); //getPath()方法获取文件相对路径 System.out.println(f1.getPath()); //getAbsolutePath()方法获取文件绝对路径 System.out.println(f1.getAbsolutePath()); //length()方法获取文件大小 System.out.println(f1.length()); //canWrite()方法判断文件是否可写 System.out.println(f1.canWrite()); //list()方法返回当前路径下所有文件和文件夹的名称,保存为数组 System.out.println(Arrays.toString(f3.list())); } }
FileFilter接口
当调用File类中的listFiles()方法时,支持传入FileFilter接口实现类的对象作为参数,对获取的文件进行过滤
import java.io.File; import java.io.FileFilter; public class Hello{ public static void main(String[] args) { File f2 = new File("1"); System.out.println(f2.mkdir()); //FileFilter实现类可以自定义选择文件的条件 File[] files = f2.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.getName().endsWith(".jpg")) { return true; } return false; } }); for (File f : files){ System.out.println(f.getName()); } } }
练习:递归打印文件夹所有文件路径,和删除所有文件
import java.io.File; public class Hello{ public static void main(String[] args) { File file = new File("d:\\JAVA"); test(file); } //要递归打印和删除,因此要创建一个方法来调用 public static void test(File file){ File[] list = file.listFiles(); if (list != null){ for (File fi : list) { if (fi.isDirectory()){ //采用递归判断子文件是否为目录 test(fi); } else { System.out.println(fi.getName()); System.out.println(fi.delete()); } } } //先把所有文件删除以后,才能删除目录 System.out.println(file.delete()); } }
这篇关于Java IO流06:File类和FileFilter接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-28MQ底层原理资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:入门与初级用户指南
- 2024-11-28MQ消息队列资料入门教程
- 2024-11-28MQ消息队列资料:新手入门详解
- 2024-11-28MQ消息中间件资料详解与应用教程
- 2024-11-28MQ消息中间件资料入门教程
- 2024-11-28MQ源码资料详解与入门教程
- 2024-11-28MQ源码资料入门教程
- 2024-11-28RocketMQ底层原理资料详解