Java学习-文件IO操作

1.遍历文件夹

遍历C:\WINDOWS目录下所有文件(不包括文件夹),打印出最大最小文件和它们的大小(字节)

知识点:listFiles(),length() ,isFile()

 1 package IOTest;
 2 import java.io.File;
 3 
 4 public class test {
 5     public static void main(String[] args) {
 6 
 7         File f = new File("C:/WINDOWS");
 8         File fs[] = f.listFiles();
 9         //统计最大最小值要使用的临时变量
10         int max = 0;
11         int min = (int) (Math.pow(2, 31) - 1);
12         int max_index = 0;
13         int min_index = 0;
14         
15         for (int i = 0; i < fs.length; i++) {
16             if (fs[i].isFile()) {
17                 if (fs[i].length() > max) {
18                     max = (int) fs[i].length();
19                     max_index = i;
20                 }
21                 if (fs[i].length() < min && fs[i].length() != 0) {// 最小文件不能为0字节
22                     min = (int) fs[i].length();
23                     min_index = i;
24                 }
25             }
26         }
27         System.out.printf("最大文件是%s,大小是%d字节\n", fs[max_index], max);
28         System.out.printf("最小文件是%s,大小是%d字节", fs[min_index], min);
29     }
30 }

效果图:

2.遍历文件夹(进阶)

遍历指定文件夹下的所有文件(包括所有子文件夹下的文件)

知识点:递归,全局变量,把第一问的代码进行改造即可

 1 package IOTest;
 2 
 3 import java.io.File;
 4 
 5 public class test {
 6     //不得已用了以下全局变量
 7     static int max = 0;
 8     static int min = (int) (Math.pow(2, 31) - 1);
 9     static int max_index = 0;
10     static int min_index = 0;
11     static String maxFile=null;//最大文件的名字
12     static String minFile=null;
13     
14     public static void func(File f) {
15         if (f.exists()) {
16             File fs[] = f.listFiles();        
17             for (int i = 0; i < fs.length; i++) {
18                 if (fs[i].isFile()) {//若是文件
19                     if (fs[i].length() > max) {
20                         max = (int) fs[i].length();
21                         max_index = i;
22                         maxFile=String.valueOf(fs[max_index]);
23                     }
24                     if (fs[i].length() < min && fs[i].length() != 0) {// 最小文件不能为0字节
25                         min = (int) fs[i].length();
26                         min_index = i;
27                         minFile=String.valueOf(fs[min_index]);
28                     }
29                 }else{//若是文件夹,递归调用func继续查找
30                     func(fs[i]);
31                 }
32             }
33         }
34     }
35     
36     public static void main(String[] args) {
37 
38         File f = new File("D:/Program Files (x86)");//若是C盘有可能出现指针异常,估计是文件访问权限问题
39         func(f);
40         System.out.printf("最大文件是 %s,大小是%d字节\n",maxFile,max);
41         System.out.printf("最小文件是 %s,大小是%d字节\n",minFile,min);
42     }
43 }

效果图:

猜你喜欢

转载自www.cnblogs.com/gilgamesh-hjb/p/12180165.html