This post originated from an RSS feed registered with Java Buzz
by dion.
Original Post: FileParser.eachLine: Learning from other languages
Feed Title: techno.blog(Dion)
Feed URL: http://feeds.feedburner.com/dion
Feed Description: blogging about life the universe and everything tech
At one time, if I had to write some code which was to loop through a file and do something with the contents, I would have thought:
- open the file
- while (there is a line)
- get line
- do something with line
- close up resources
And, I would make sure that all of the IO exceptions are handled correctly, that the resources are closed nicely in a finally { } etc etc.
However, since I get to code in other environments (Ruby, Groovy, etc) I now use a simple utility to do this kind of task. Here is the most simple test case which uses the FileParser utility:
public void testSimpleCommand() {
FileParser.eachLine(sampleFileLineReader, new LineCommand() {
public void useLine(String lineContents) {
assertEquals(sampleFileLine, lineContents);
}
});
}
Now the code that handles file IO is in one place (FileParser) and my application code doesn't have to worry about it!
Compare this to the Groovy:
new File(inputFile).eachLine { | line | ....... }