private static void convertInsToCatInner( String baseDir, String fileName, BufferedWriter writer, Map<String, String> insToCat) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(new File(baseDir + fileName))); int lineNumber = 0; int totalLineNumber = 0; String inputLine = null; System.out.println("Start reading: " + baseDir + fileName); while ((inputLine = reader.readLine()) != null) { // check progress if (lineNumber >= 500000) { totalLineNumber += lineNumber; lineNumber = 0; System.out.print(totalLineNumber + ", "); } lineNumber++; // ignore comment lines. if (inputLine.startsWith("#")) continue; // tokenize String[] strArr = inputLine.split(" "); String ins = App.removePrefix(strArr[0], "/resource/"); try { writer.write(insToCat.get(ins)); writer.newLine(); } catch (NullPointerException e) { continue; } } reader.close(); System.out.println("Done"); }