BufferedReader br = new BufferedReader(new FileReader("penis.txt"));
And wait a minute, what the fuck is so horrible about having three nested classes? Any production code will have classes nested in the hundreds, possibly thousands. The reason for the wrapping is because of the flexibility of a BufferedReader, e.g.: you can use it to read from a URLConnection socket.