Why not write your application to take a Reader
as input? That way, you can easily replace an InputStreamReader(System.in)
with a FileReader(testFile)
public class Processor {
void processInput(Reader r){ ... }
}
And then two instances:
Processor live = new Processor(new InputStreamReader(System.in));
Processor test = new Processor(new FileReader("C:/tmp/tests.txt");
Getting used to coding to an interface will bring great benefits in almost every aspect of your programs!
Note also that a Reader
is the idiomatic way to process character-based input in Java programs. InputStream
s should be reserved for raw byte-level processing.