| 
 
| 从键盘接收一个文件夹路径,统计该文件夹大小 package com.heima.test;
 /*
 思路:
 1.输入一个文件夹路径
 2.判断输入内容是否是文件夹
 3.判断文件夹内是否还有文件夹,如果是文件就计算该文件大小,如果是文件夹就递归调用
 4.统计变量记录所有文件大小
 5.打印统计变量
 */
 import java.util.ArrayList;
 import java.util.List;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.Scanner;
 
 public class HomeWork {
 public static void main(String[] args) throws IOException {
 File f=method();
 list(f);
 
 }
 public static File method() {
 Scanner sc=new Scanner(System.in);        //创建录入对象
 String s=sc.nextLine();
 File file=new File(s);                                                //创建文件对象
 while(true) {
 if(!file.exists()) {
 System.out.println("不存在");                        //判断该文件是否存在
 }else if(file.isFile()) {
 System.out.println("输入的是文件");                //判断该文件是否是文件
 }else {
 return file;                                                //将文件夹返回
 }
 }
 }
 public static void method1(File f,List l) {
 File[] arr=f.listFiles();                                                //将文件转成文件数组
 
 for (File file : arr) {                                                        //遍历文件数组
 if(file.isFile()) {                                                        //判断如果file是文件就添加到l集合中
 l.add(file);
 } else if(file.isDirectory()) {                                //如果file是文件夹
 File f1=new File(f,file.getName());                //将method1传入的对象引用和file的对象名传入新的文件对象中
 method1(f1,l);                                                        //递归
 }
 }
 }
 public static void list(File f) {
 List<File> l=new ArrayList<>();                                        //创建集合对象
 int count=0;                                                                        //给定一个计算变量
 method1(f,l);                                                                        //调用方法
 for (File file : l) {                                                        //遍历集合
 count+=file.length();                                                //累加每个文件的长度
 }
 System.out.println(count);
 }
 }
 
 | 
 |