package cn.xbmu.lib.jfly.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
/**
* 文件intel.txt,内容如下:
* 小王【空格】10000【回车】
* 小强【空格】12345【回车】
* 小张【空格】2342 【回车】
* 小强【空格】1030 【回车】
* 小周【空格】1020 【回车】
* 小杨【空格】2342 【回车】
* 请编写一程序从test.txt中读取数据,并按数字大小排序后写入另一文件sun.txt(写入格式同上)
* @author JFly
*/
public class SortFileContentByNum {
public static void main(String[] args) throws FileNotFoundException, IOException {
BufferedReader br = new BufferedReader(new FileReader("C:/test.txt"));
String line = null;
int size = 0;
ArrayList<String> al = new ArrayList<String>();
while ((line = br.readLine()) != null) {
if (!line.isEmpty()) {
al.add(line);
size++;
}
}
br.close();
String[] b = al.toArray(new String[size]);
Arrays.sort(b, new Comparator<String>() {
public int compare(String s1, String s2) {
int i1 = 0;
int i2 = 0;
if (s1.matches(".+\\s+\\d+") && s2.matches(".+\\s+\\d+")) {
i1 = Integer.parseInt(s1.replaceAll("\\D", ""));
i2 = Integer.parseInt(s2.replaceAll("\\D", ""));
}
if(i1 == i2) {
String str1 = s1.replaceAll("\\d", "");
String str2 = s2.replaceAll("\\d", "");
return str1.compareTo(str2) > 0 ? -1 : 1;
}
return i1 < i2 ? -1 : 1;
}
});
BufferedWriter bw = new BufferedWriter(new FileWriter("c:/result.txt"));
for(String s : b) {
bw.write(s);
bw.write("\r");
}
bw.flush();
bw.close();
}
}
分享到:
相关推荐
对大小不超过$G的文件内容按字符单位进行排序
该案例主要是针对大文件的去重排序项目,目前支持GB乃至TB级别的数据量,项目思路是针对大文件进行分治的项目,大文件分化成多个小文件,然后再进行排序和去重,目前是在linux系统上进行运行
sorta-帮助你对文件进行排序
排序文件,将图片和xml文档进行排序。
NULL 博文链接:https://elan1986.iteye.com/blog/1123155
文本文件内容排序功能: 每行是一条记录,每行可以有多列,列间按预定义的分隔符分隔; 可以按单列或多列组合排序,每列的顺序可以设置为反序或者正序; 列的数据类型可以是字符串、整数、浮点数,比较排序时按指定...
多文件读写操作,内容排序,然后输出到一个文件中
C语言写的冒泡排序程序,从文件读出数排序后写入文件,对整个算法有详细的思路和注释,对新人学习很合适。
自己学C语言时用的,供学习之用,用c语言写的数组排序,读写文件等,
C# 实现照片按拍照日期排序,读取文本文件内容,自定义重命名(规则:text文件一行一个名字)
java对大数据量文件内容的多线程读取和排序.doc
java排序.txt
java对大数据量文件内容的多线程读取和排序.pdf
帆软:排序问题(通过帆软设置或者sql排序) 测试文件 + sql 脚本
用netbeans开发的JAVA设计文本文件读取倒序排序程序,也可以保存。主要用JFileChooser控件读取和保存
编写一个java多线程程序,用于文件内容的读取和排序。
java检索文件内容中每个字出现的次数并从高到低排序返回结果; 代码中用到的文件时英文内容的txt文件,放到了E盘根目录下; 项目中还附带了以单例模式实现的整数类型的两个变量互换值得功能,不用中间变量方式实现...
html页面中js一行一行读取txt文件并排序显示_仅IE浏览器执行;测试前,请先修改main.htm中txt文件的绝对地址!因为FSO函数仅能在IE浏览器中运行!代码仅在IE浏览器测试通过!
java实验 内容是有关排序的GUI 欢迎下载修改
希尔排序,C++实现,VS2010,完整工程文件,含注释