日期:2014-05-20 浏览次数:20784 次
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class TestReadAndWrite { public static File[] getFileSort(File[] f) {// 对文件数组按照修改日期进行冒泡排序 File changef = null; for (int i = 0; i < f.length - 1; i++) { if (f[i].lastModified() > f[i + 1].lastModified()) { changef = f[i + 1]; f[i + 1] = f[i]; f[i] = changef; i = 0; } } return f; } public static void main(String[] args) { File fdir = new File("E:\\test"); File write = new File("E:\\test.txt"); boolean first = true;// 第一个文件的标识符 try { FileWriter fw = new FileWriter(write, true);//追加模式写文件 if (fdir.isDirectory()) { File[] ftxt = fdir.listFiles(); ftxt = getFileSort(ftxt); for (File f : ftxt) { FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); String str = br.readLine(); if (!first) {//如果不是第一个文件就跳开第一行:id name str = br.readLine(); } first = false; while (str != null) { fw.write(str + "\n"); fw.flush(); str = br.readLine(); } br.close(); fr.close(); } fw.close(); } } catch (Exception e) { e.printStackTrace(); } } }
------解决方案--------------------
提供一种思路:
把两个文件中的数据都读入内存,存放到Map中,id作为键值,Map是按键值有序的
然后将内容输出到指定的文件
------解决方案--------------------
你理解错了,public static File[] getFileSort(File[] f) {// 对文件数组按照修改日期进行冒泡排序
这个画蛇添足了,楼主的文件名已经有时间戳了,是要按照文件名上的时间来顺序读写的,这样的话,list方法就是按照文件名排序的。