All pastes #963177 Raw Edit

Something

public java v1 · immutable
#963177 ·published 2008-03-30 08:59 UTC
rendered paste body
//counts the words in a text file... //combined effort: wlfshmn from #java on IRC Undernet //and RAZII import java.io.*;import java.util.*; public final class WordCount2{ private static final Map<String, int[]> dictionary =         new HashMap<String, int[]>(800000); private static int tWords = 0; private static int tLines = 0; private static long tBytes = 0;  public static void main(final String[] args) throws Exception {  System.out.println("Lines\tWords\tBytes\tFile\n");    //TIME STARTS HERE   final long start = System.currentTimeMillis();  for (String arg : args)  {   File file = new File(arg);   if (!file.isFile())   {    continue;   }   int numLines = 0;   int numWords = 0;   long numBytes = file.length();   BufferedReader input = new BufferedReader(new         InputStreamReader(new FileInputStream(arg),              "ISO-8859-1"));   StreamTokenizer st = new StreamTokenizer(input);   st.ordinaryChar('/'); st.ordinaryChar('.');   st.ordinaryChar('-'); st.ordinaryChar('"');   st.ordinaryChar('\''); st.eolIsSignificant(true);      while (st.nextToken() != StreamTokenizer.TT_EOF)   {    if (st.ttype == StreamTokenizer.TT_EOL)    {     numLines++;    }     else if (st.ttype == StreamTokenizer.TT_WORD)      {        numWords++;        int[] count = dictionary.get(st.sval);        if (count != null)         { count[0]++;}         else         { dictionary.put(st.sval, new int[]{1});}      }  }   System.out.println( numLines + "\t" + numWords + "\t" + numBytes + "\t" + arg);   tLines += numLines;   tWords += numWords;   tBytes += numBytes;  }    //only converting it to TreepMap so the result   //appear ordered, I could have   //moved this part down to printing phase   //(i.e. not include it in time).     TreeMap<String, int[] > sort = new TreeMap<String, int[]> (dictionary);    //TIME ENDS HERE   final long end = System.currentTimeMillis();    System.out.println("---------------------------------------");  if (args.length > 1)  {  System.out.println(tLines + "\t" + tWords + "\t" + tBytes + "\tTotal");   System.out.println("---------------------------------------");  }  for (Map.Entry<String, int[]> pairs : sort.entrySet())  {   System.out.println(pairs.getValue()[0] + "\t" + pairs.getKey());  }     System.out.println("Time: " + (end - start) + " ms"); }}