JAVA 对文件夹下所有文件按文件大小进行排序,请问哪里有问题

JAVA 对文件夹下所有文件按文件大小进行排序,请问哪里有问题,第1张

你通过递归得到文件列表,但是你通过重写compare和equals方法,比较文件大小这个有待商榷,一般文件大小是通过字节数来判断的,通用方法为Filelength()方法,给你个文件参考一下,没有package,很简单,文件夹路径自己得改一下,否则找不到文件。

可以参考以下两种方法,以Java sdk为例,比如获取bucket hpdemo下log文件夹里面所有object大小

1 获取所有object时可以指定prefix前缀,如下,定义一个变量累加每个object大小就可以了

OSSClient client = new OSSClient(OSS_ENDPOINT, ACCESS_ID, ACCESS_KEY);

String bucketName = "hpdemo";

ObjectListing listing = clientlistObjects(bucketName, "log");

// 遍历所有Object

for (OSSObjectSummary objectSummary : listinggetObjectSummaries()) {

Systemoutprintln(objectSummarygetKey());

Systemoutprintln(objectSummarygetSize());//输出每个object文件的大小

}

2 如果只想要统计一个文件夹下的所有文件,子文件夹不统计,比如log文件夹里面有很多日志文件,也有子文件夹,可以参考如下

ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName);

// 设置参数

listObjectsRequestsetDelimiter("/");

listObjectsRequestsetPrefix("log/");

ObjectListing listing = clientlistObjects(listObjectsRequest);

// 遍历所有Object

for (OSSObjectSummary objectSummary : listinggetObjectSummaries()) {

Systemoutprintln(objectSummarygetKey());

Systemoutprintln(objectSummarygetSize());//输出object的大小

}

// 遍历所有CommonPrefix

Systemoutprintln("CommonPrefixs:");

for (String commonPrefix : listinggetCommonPrefixes()) {

Systemoutprintln(commonPrefix);

}

当使用 Java API *** 作 HDFS 时,可以使用 FileSystemlistFiles() 方法来获取文件列表。该方法接受一个 Path 对象,表示要列举文件的目录,并返回一个 RemoteIterator<LocatedFileStatus> 对象,该对象可用于迭代目录中的文件。

例如,下面的代码演示了如何使用 listFiles() 方法来获取 HDFS 上的文件列表:

// 定义 HDFS 连接配置

Configuration conf = new Configuration();

// 获取 HDFS FileSystem 对象

FileSystem fs = FileSystemget(conf);

// 定义要列举文件的目录

Path dirPath = new Path("/user/hadoop");

// 获取文件列表

RemoteIterator<LocatedFileStatus> fileIter = fslistFiles(dirPath, true);

// 遍历文件列表

while (fileIterhasNext()) {

// 获取当前文件信息

LocatedFileStatus fileStatus = fileIternext();

// 输出文件名称和大小

Systemoutprintln(fileStatusgetPath()getName() + " : " + fileStatusgetLen());

}

public File getFile(){

final JFileChooser fc = new JFileChooser();

fc setFileSelectionMode(JFileChooser FILES_AND_DIRECTORIES);

//        JFileChooser FILES_ONLY

//        JFileChooser DIRECTORIES_ONLY

int returnVal = fc showOpenDialog(this);

File file_choosed = fc getSelectedFile();

return file_choosed;

lishixinzhi/Article/program/Java/hx/201311/27130

以上就是关于JAVA 对文件夹下所有文件按文件大小进行排序,请问哪里有问题全部的内容,包括:JAVA 对文件夹下所有文件按文件大小进行排序,请问哪里有问题、如何获取oss文件夹大小、使用Java API *** 作HDFS时,_方法用于获取文件列表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9644996.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存