public void replaceStringsIn(File file) throws IOException { String name = file.getPath(); BufferedReader reader = new BufferedReader(new FileReader(file)); BufferedWriter writer = new BufferedWriter(new FileWriter(name + ".tmp")); Logger.debug("Writing to temporary file: %s", name + ".tmp"); String line; while ((line = reader.readLine()) != null) { Logger.verbose("Data line before replacement: %s", line); Iterator<String> keys = mMap.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); String value = mMap.get(key); line = line.replaceAll(key, value); } Logger.verbose("Data line after replacement: %s", line); writer.write(line); writer.newLine(); } reader.close(); writer.close(); file.delete(); FileUtils.moveFile(new File(name + ".tmp"), file); Logger.debug("Successfully cleaned up and done with string replacement."); }