JAVA 中级 / I/O / I/O系列教材 (一)- JAVA 的FILE类,以及常用方法

目录

练习-遍历文件夹(非递归)

练习-遍历子文件夹(递归)


JAVA 中级 / I/O / I/O系列教材 (一)- JAVA 的FILE类,以及常用方法

练习-遍历文件夹(非递归)

package file;
   
import java.io.File;
   
public class TestFile {
   
    public static void main(String[] args) {
        File f = new File("c:\\windows");
        File[] fs = f.listFiles();
        if(null==fs)
            return;
        long minSize = Integer.MAX_VALUE;
        long maxSize = 0;
        File minFile = null;
        File maxFile = null;
        for (File file : fs) {
            if(file.isDirectory())
                continue;
            if(file.length()>maxSize){
                maxSize = file.length();
                maxFile = file;
            }
            if(file.length()!=0 && file.length()<minSize){
                minSize = file.length();
                minFile = file;
            }
        }
        System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length());
        System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length());
   
    }
}

练习-遍历子文件夹(递归)

        使用递归来进行文件夹的遍历。

package file;
   
import java.io.File;
   
public class TestFile {
      
    static long minSize = Integer.MAX_VALUE;
    static long maxSize = 0;
    static File minFile = null;
    static File maxFile = null;
      
    //使用递归来遍历一个文件夹的子文件
    public static void listFiles(File file){
        if(file.isFile()){
            if(file.length()>maxSize){
                maxSize = file.length();
                maxFile = file;
            }
            if(file.length()!=0 && file.length()<minSize){
                minSize = file.length();
                minFile = file;
            }
            return;
        }
          
        if(file.isDirectory()){
            File[] fs = file.listFiles();
            if(null!=fs)
            for (File f : fs) {
                listFiles(f);
            }
        }
    }
   
    public static void main(String[] args) {
        File f = new File("c:\\windows");
        listFiles(f);
        System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length());
        System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length());
   
    }
}

JAVA 中级 / I/O / I/O系列教材 (一)- JAVA 的FILE类,以及常用方法

        for (File f : fs)  f可能也是文件夹,继续递归下去。

上一篇:队列


下一篇:栈的基本概念