public static void main(String[] args) throws Exception { // parse command line arguments int numFiles = 0; boolean keepValid = false; for (int i=0; i<args.length; i++) { if (args[i].startsWith("-")) { if (args[i].equals("-valid")) keepValid = true; else { System.err.println("Warning: ignoring unknown command line flag \"" + args[i] + "\""); } } else numFiles++; } if (numFiles == 0) { // read from stdin process(new BufferedReader( new InputStreamReader(System.in, Constants.ENCODING)), keepValid); } else { // read from file(s) for (int i=0; i<args.length; i++) { if (!args[i].startsWith("-")) { process(new BufferedReader(new InputStreamReader( new FileInputStream(args[i]), Constants.ENCODING)), keepValid); } } } }