You should be careful with what you mean by "ASCII" file. Do you mean
real 7-bit ASCII, the Basic Latin block of the Unicode character set, or do
you mean more vaguely, text, in whatever the default encoding is for your
platform (usually Latin-1 in UNIX and cp1252 in Windows)?
FileReader assumes you want your platform's default; if you want to specify
true ASCII you have to pass the charset name to InputStreamReader.
Here are two examples that read a file line by line. The second uses
java.util.Scanner, which was introduced in the current version of Java.
It has additional features like parsing numbers and matching
patterns.