package com.raj.filesort; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.Date; import java.util.Set; import java.util.TreeSet; /** * Sort a 400 MB file * * @author raju rama krishna * @see http://javatroops.blogspot.co.nz * */ public class FileSorter { public static void main(String[] args) throws Exception { long t1 = new Date().getTime(); Set<String> set = new TreeSet<String>(); BufferedReader br = new BufferedReader(new FileReader(new File("C:\\Project\\tpc-h\\dbloader\\LINEITEM.xml"))); String s = br.readLine(); while( s != null ) { set.add(s); s = br.readLine(); } br.close(); FileWriter fw = new FileWriter(new File("C:\\Apps\\output.txt")); for (String x: set) { fw.write(x); fw.write('\n'); } fw.close(); long t2 = new Date().getTime(); System.out.println("Time taken = " +(t2-t1)/1000 + " sec"); } }