You said you could think of other ways to do this, I'm assuming that means reading from a file on the local filesystem.
If you look at the
Scanner API documentation, more specifically the constructor summary, you will probably notice a few familiar classes there.
For instance, a very convenient way to construct a new Scanner is by use the constructor that take a File instance. Simply call that and you're Scanner is good to go to start reading input from the File you specified.
As for the implementation of the methods, it really depends on the contents of the file and how you want to proces it.
A good starting point might be this
Scanner tutorial, or of course the Scanner's API documentation.
[Edit]Refine the API link[/edit]