File Input Output Java

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StreamTokenizer;
// The buffering makes the program more than 20 times faster.
public class SumFile {
  public static void main(String[] a) throws IOException {
      sumfile("file.txt");
  }
  static void sumfile(String filename) throws IOException {
    Reader r = new BufferedReader(new FileReader(filename));
    StreamTokenizer stok = new StreamTokenizer(r);
    stok.parseNumbers();
    double sum = 0;
    stok.nextToken();
    while (stok.ttype != StreamTokenizer.TT_EOF) {
      if (stok.ttype == StreamTokenizer.TT_NUMBER)
        sum += stok.nval;
      else
        System.out.println("Nonnumber: " + stok.sval);
      stok.nextToken();
    }
    System.out.println("The file sum is " + sum);
  }
}