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字节

posted on 2020-05-16 22:18  liqiangbk  阅读(162)  评论(0编辑  收藏  举报

导航