设计一个类,提供如下方法: 方法一:用来统计指定目录下的文件数量,不含文件夹的数量。 方法二:重载一个方法,用来统计指定扩展名的文件数量,比如:.java文件的数量 方法三:用来统计指定文件夹下面的所有文件的大小之和。单个文件的大小,可以通过 file.length() 方法来获 取,单位是 kb, 如果小于1kb的,则以 b 为单位来显示。 方法四:同样,再重载一个方法,用来统计指定文件夹下面某类扩展名文件的大小,并判断输入的路径是否含有文件夹
时间: 2024-03-01 13:54:40 浏览: 87
好的,根据您的要求,我设计了以下类:
```java
import java.io.File;
public class FileCounter {
/**
* 统计指定目录下的文件数量,不含文件夹的数量
*
* @param dirPath 目录路径
* @return 文件数量
*/
public int countFiles(String dirPath) {
File dir = new File(dirPath);
File[] files = dir.listFiles();
int count = 0;
for (File file : files) {
if (file.isFile()) {
count++;
}
}
return count;
}
/**
* 统计指定扩展名的文件数量
*
* @param dirPath 目录路径
* @param ext 扩展名,比如:.java
* @return 文件数量
*/
public int countFiles(String dirPath, String ext) {
File dir = new File(dirPath);
File[] files = dir.listFiles();
int count = 0;
for (File file : files) {
if (file.isFile() && file.getName().endsWith(ext)) {
count++;
}
}
return count;
}
/**
* 统计指定文件夹下面的所有文件的大小之和
*
* @param dirPath 目录路径
* @return 文件大小之和,单位为 kb 或 b
*/
public String countFileSize(String dirPath) {
File dir = new File(dirPath);
File[] files = dir.listFiles();
long size = 0;
for (File file : files) {
if (file.isFile()) {
size += file.length();
}
}
if (size < 1024) {
return size + " b";
} else {
return size / 1024 + " kb";
}
}
/**
* 统计指定文件夹下面某类扩展名文件的大小,并判断输入的路径是否含有文件夹
*
* @param dirPath 目录路径
* @param ext 扩展名,比如:.java
* @return 文件大小之和,单位为 kb 或 b
*/
public String countFileSize(String dirPath, String ext) {
File dir = new File(dirPath);
if (!dir.isDirectory()) {
return "输入的路径不是一个文件夹";
}
File[] files = dir.listFiles();
long size = 0;
for (File file : files) {
if (file.isFile() && file.getName().endsWith(ext)) {
size += file.length();
}
}
if (size < 1024) {
return size + " b";
} else {
return size / 1024 + " kb";
}
}
}
```
这个类提供了四个方法,分别用来统计文件数量、统计指定扩展名的文件数量、统计文件大小之和、统计指定扩展名的文件大小之和。其中,第三个和第四个方法返回的结果会自动转换为合适的单位(kb 或 b)。第四个方法还会判断输入的路径是否含有文件夹,如果不是,会返回一个错误提示。
阅读全文