title: Replace string in file
body: <p>I'm looking for a way to replace a string in a file without reading the whole file into memory. Normally I would use a Reader and Writer, i.e. something like the following:</p>
  
  <pre><code>public static void replace(String oldstring, String newstring, File in, File out)
      throws IOException {
  
      BufferedReader reader = new BufferedReader(new FileReader(in));
      PrintWriter writer = new PrintWriter(new FileWriter(out));
      String line = null;
      while ((line = reader.readLine()) != null)
          writer.println(line.replaceAll(oldstring,newstring));
  
      // I'm aware of the potential for resource leaks here. Proper resource
      // handling has been omitted in the interest of brevity
      reader.close();
      writer.close();
  }
  </code></pre>
  
  <p>However, I want to do the replacement in-place, and don't think I can have a Reader and Writer open on the same file concurrently. Also, I'm using Java 1.4, so dont't have access to NIO, Scanner, etc.</p>
  
  <p>Thanks,
  Don</p>