12--API-File文件流
File文件流
1 概述
文件和目录路径名的抽象表示形式。 可以用来封装文件路径、文件夹路径、不存在的路径。
2 创建对象
File(String pathname) //通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
注意: 如果new File(path)的时候, path路径一定要存在这个目录或文件
3 常用方法
文件, 文件夹属性
返回值 | 方法名 | 解释 |
---|---|---|
long | length(): | 文件的字节量 |
boolean | exists(): | 是否存在,存在返回true |
boolean | isFile(): | 是否为文件,是文件返回true |
boolean | isDirectory(): | 是否为文件夹(目录),是文件夹返回true |
String | getName(): | 获取文件/文件夹名 |
String | getParent() | 获取父文件夹的路径 |
String | getAbsolutePath() | 获取文件的完整路径 |
创建和删除
返回值 | 方法名 | 解释 |
---|---|---|
boolean | createNewFile() | 新建文件,文件夹不存在会异常,文件已经存在返回false |
boolean | mkdirs() | 新建多层不存在的文件夹\a\b\c |
boolean | mkdir() | 新建单层不存在的文件夹\a |
boolean | delete() | 删除文件,删除空文件夹 |
文件夹列表
返回值 | 方法名 | 解释 |
---|---|---|
String[] | list(): | 返回目录下的所有文件/目录名 |
File[] | listFiles(): | 返回目录下所有的文件/目录的对象 |
4 测试
利用递归求文件的总大小
package cn.tedu.io;
import java.io.File;
import java.util.Scanner;
/**
*@author 作者:李强
*@email 邮箱:1435430561@qq.com
* 日期: 2020年5月16日
*/
public class Test6_DiGui {
public static void main(String[] args) {
//String path = new Scanner(System.in).nextLine();
File file = new File("D:\\iotest");
long res = size(file);
System.out.println("文件总字节量为"+res+"字节");
}
public static long size(File dir) {
long sum =0;//记录字节量
File[] files = dir.listFiles();//文件列表
for (int i = 0; i < files.length; i++) {
File file = files[i];//拿到当前的资源
if (file.isFile()) {
sum+=file.length();
System.out.println("--->获取 <" + file.getName() + "> 的文件大小: [" + file.length() + " 字节]");
}else if (file.isDirectory()) {
System.out.println("进入 <" + file.getName() + "> 文件夹");
sum+=size(file);
}
}
return sum;
}
}
结果:
--->获取 <1 - 副本.txt> 的文件大小: [38 字节]
--->获取 <1.txt> 的文件大小: [20 字节]
进入 <n> 文件夹
--->获取 <4.txt> 的文件大小: [1 字节]
进入 <p> 文件夹
进入 <q> 文件夹
--->获取 <3.txt> 的文件大小: [50 字节]
文件总字节量为109字节