练习-Java输入输出之File类之获取文件信息
链接:https://www.educoder.net/tasks/b65ogwltx4pq
任务描述
本关任务:输出给定目录下的最大文件和最小文件名以及它们的文件大小。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,输出给定目录下的最大文件和最小文件名,具体要求如下:
接收给定字符串(如:/test);
输出给定目录下的最大文件和最小文件名以及它们的文件大小(不考虑子目录)。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例:
测试输入:
/test
预期输出:
最大的文件是d1.txt,其大小是80字节
最小的文件是d2.txt,其大小是15字节
代码:
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class FileTest {
public static void main(String[] args){
// 请在Begin-End间编写完整代码
/********** Begin **********/
// 接收给定字符串(目录)
Scanner scanner=new Scanner(System.in);
String input=scanner.next();
// 遍历目录,输出最小文件和最大文件名以及它们的大小
File f = new File(input);
File[] fis = f.listFiles();
if(null==fis)
return;
long minSize = Integer.MAX_VALUE;//定义最大用于比较
long maxSize = 0;
File minFile = null;
File maxFile = null;
for (File file : fis) {
//判断是否是文件夹
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;
}
}
String maxf=maxFile.getName();
String minf=minFile.getName();
maxf.replace("/test/","");
System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxf,maxFile.length());
System.out.printf("最小的文件是%s,其大小是%,d字节%n",minf,minFile.length());
}
}