社区
Java SE
帖子详情
Java 下如何依次读取一个目录下的所有文件
mcolinc
2010-03-04 02:18:23
我在一个路径下有1000个文件
依次为1,2,3,4,5...........1000
我是用了
File f = new File(path);
File[] t = f.listFiles(); 这个方法来读取这个路径下的文件
但是最后结果顺序为
1,10,100,1000,101...
我怎么做才能让它读取的顺序为1,2,3......1000?
...全文
140
2
打赏
收藏
Java 下如何依次读取一个目录下的所有文件
我在一个路径下有1000个文件 依次为1,2,3,4,5...........1000 我是用了 File f = new File(path); File[] t = f.listFiles(); 这个方法来读取这个路径下的文件 但是最后结果顺序为 1,10,100,1000,101... 我怎么做才能让它读取的顺序为1,2,3......1000?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JavaAlpha
2010-03-04
打赏
举报
回复
lz可以参考
http://topic.csdn.net/t/20030108/10/1337549.html
-
jxlstc
2010-03-04
打赏
举报
回复
错误原因分析:
File[] t = f.listFiles();//创建数组,未排序
String[] strArray = {"11","1","2","12"};
Arrays.sort(strArray);//调用此方法,实现默认排序
for(int i=0;i<strArray.length;i++){
System.out.println(strArray[i]); //1 11 12 2
}
说明:字符串排序是按首字母比较第一位,相同再比较第二位,依次类推,所以产生了一述结果
那么如何才能改变默认排序呢?
public class StringComparetor implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
int i1 = Integer.parseInt(o1);
int i2 = Integer.parseInt(o2);
if(i1>i2){
return 1;
}else if(i1<i2){
return -1;
}
return 0;
}
}
说明:定义一个实现了Comparator接口的类,它是对排序规则的定义,具体应用规则到网上去查一下就可以了,很多的
String[] strArray = {"11","1","2","12"};
Arrays.sort(strArray,new StringComparetor());//自定义排序
for(int i=0;i<strArray.length;i++){
System.out.println(strArray[i]);//1 2 11 22
}
得到了我们想要的结果,针对于你的问题,我写的一个实例,你直接贴到你的代码中就可以用了:
import java.io.File;
import java.util.Comparator;
public class FileComparator implements Comparator<File> {
@Override
public int compare(File file01, File file02) {
System.out.println();
int file01name = Integer.parseInt(file01.getName().substring(0,file01.getName().indexOf('.')));
int file02name = Integer.parseInt(file02.getName().substring(0,file02.getName().indexOf('.')));
if(file01name>file02name){
return 1;
}else if(file02name<file02name){
return -1;
}
return 0;
}
}
import java.io.File;
import java.util.Arrays;
public class SortTest {
public static void main(String[] args){
File file = new File("f:/test");
File[] files = file.listFiles();
Arrays.sort(files,new FileComparator());
for(int i=0;i<files.length;i++){
System.out.println(files[i].getName());
}
}
}
Java
读取
文件
本文介绍了一种使用
Java
语言
读取
文件
夹及其子
文件
的方法。通过递归方式遍历
文件
夹,可以打印出
文件
的路径、绝对路径及
文件
名等信息。示例代码适用于Windows和Unix系统。
java
读取
某个
目录
下的所有
文件
本文介绍了一种使用
Java
代码批量
读取
指定
目录
下所有
文件
的方法,通过递归遍历
目录
结构,能够有效处理包含多层次子
目录
的复杂
文件
夹,适用于需要处理大量
文件
的场景。
SpringBoot
读取
resources
目录
下的
文件
本文分享了在SpringBoot项目中
读取
resources
目录
下
文件
的三种方法,详细对比了传统
Java
读取
方式、ResourceUtils工具类及ClassPathResource类的适用场景。前两者在IDEA上可行但在jar包中失效,而ClassPathResource方法在各种环境下均有效。
Java
8
读取
、写入、遍历、监控
文件
及
目录
本文介绍
Java
8中
文件
操作的新特性,包括
读取
、写入
文件
,遍历
目录
及
文件
,以及使用WatchService监控
目录
变更等。通过具体示例展示如何使用这些API简化
文件
处理流程。
java
之
读取
一个
文件
内容写入到另
一个
文件
中
本文介绍两种
Java
文件
读写方法,一是按行
读取
并保存至新
文件
,二是按字节
读取
并复制。涉及FileInputStream、BufferedReader及FileOutputStream等类的使用。
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章