File类
- IO分类
-
- 文件流
- 缓冲流
- 转化流
- 打印流
- 对象流
- 随机存储流
- File 类
-
- 概念
- 相对路径和绝对路径
- 成员变量
- 构造方法
- 成员方法
-
- 文件(夹)的创建(createNewFile,mkdirs)
- 文件的删除
- 文件的获取功能
- 判断功能
- 文件遍历(递归,加上过滤器,可以遍历指定格式的文件)
- 文件过滤器
IO分类
- 输入和输出动作称为IO操作。
文件流
- FileInputStream
- FileOutputStream
- FileReader
- FileWriter
缓冲流
- BuffereInputStream
- BuffereOutputStream
- BuffereReader
- BuffereWriter
转化流
- InputStreamReader
- OutputStreamWriter
打印流
- PrintStream
- PringWriter
对象流
- DateInputStream
- DateOutputStream
随机存储流
- RandomAccessFile
File 类
概念
- File文件和目录路径名的抽象表示形式。即,Java中把文件或者目录(文件夹)都封装成File对象。也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这个类即可。
- File 将操作系统中的文件(fiel),目录(directory)和路径(path)封装成了File对象
- File与系统无关的类
相对路径和绝对路径
- 绝对路径:在系统中具有唯一性,从根目录一层一层的指向目标文件
- 相对路径:路径之间的相对关系。
成员变量
- pathSeparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串。(;)
- separator:与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。( win\ linux/ )
构造方法
- File(String pathname) 将路径封装成File对象,对路径的存在与否不判断
- File(String parent,String chile)优点:可以单独的操作父路径和子路径
- File(File parent,String chile)优点:父路径是File可以调用File的方法
File parent = new File("c:\\"); File file = new File(parent,"1.txt"); System.out.println(file);
成员方法
文件(夹)的创建(createNewFile,mkdirs)
- createNewFile() 创建文件,如果创造的文件已经存在了,就不在创造了。
- 代码示例:
public static void fuction() throws IOException { File parent = new File("c:\\"); File file = new File(parent,"1.txt"); boolean b= file.createNewFile(); System.out.println(b); }
- mkdir()创建一级文件夹,如果创造的文件夹已经存在了,就不在创造了。
- mkdirs()创建多级文件夹,如果创造的文件夹已经存在了,就不在创造了。
File file = new File("c:\\新建文件夹"); boolean b= file.mkdir(); System.out.println(b);
文件的删除
- delete() 删除文件和文件夹,直接删除,不进回收站。
File file = new File("c:\\新建文件夹"); boolean b= file.delete(); System.out.println(b);
文件的获取功能
- getName() 返回路径中表示的文件或者文件夹名(最后部分)。
File file = new File("c:\\新建文件夹//1.txt"); String name = file.getName(); System.out.println(name);
- getPath() 将封装成file的对象转化成字符串。
- length()
File file = new File("E:\\软件安装包\\HBuilder.9.0.8.windows.zip"); long length = file.length(); System.out.println(length);
- getAbsolutePath() 返回String 获取绝对路径
- getAbsoluteFile() 返回File
- getParent() 获取父路径 返回String
- getParentFile()
判断功能
- exists() 判断路径是否存在
File file = new File("src"); boolean b = file.exists(); System.out.println(b);
- isDirectory() 判断是否为文件夹对象。
- isFile()判断是否为文件对象。
- list()遍历File中的文件,只显示文件名称。String[]
File file = new File("E:\\软件安装包"); String[] str = file.list(); for(String name:str) { System.out.println(name);
- listFiles()遍历File中的文件,显示文件名称的全路径
- listRoots()获取系统中所有的根目录信息。
File[] file = File.listRoots(); for(File name:file) { System.out.println(name); }
文件遍历(递归,加上过滤器,可以遍历指定格式的文件)
-
public static void getFileName(File file) { if (file.isDirectory()) { File[] fileArr = file.listFiles(); for (int i = 0; i < fileArr.length; i++) { getFileName(fileArr[i]); } } System.out.println(file); }
文件过滤器
- File类中重载的listFiles方法,并且接受指定的过滤器。
- listFiles(FileFilter filter) 过滤器一个参数
- listFiles(FilenameFilter filter) 过滤器两个参数
- FileFilter/FilenameFilter没有自己已经实现的子类,必须自己实现此接口的子类,重写accept()方法
- 代码lFileFilter: 用于抽象路径名的过滤器。
实现接口 class MyFilter implements FileFilter{ public boolean accept(File pathname) { // return pathname.getName().endsWith(".zip"); // return pathname.isDirectory(); return pathname.isFile(); } } public class Test { public static void main(String[] args) { File file = new File("E:\\软件安装包"); func(file); } public static void func(File file) { File[] files = file.listFiles(new MyFilter()); for(File f:files) { System.out.println(f); } } }