ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
OutputStreamWriter originalWriter = new OutputStreamWriter(outputStream);
ModifyingWriter modifyingWriter =
new ModifyingWriterFactory().createRegexModifyingWriter(originalWriter, "abcd", "1234");
modifyingWriter.write("mod ");
modifyingWriter.flush();
originalWriter.write("orig ");
originalWriter.flush();
modifyingWriter.write("mod ");
modifyingWriter.flush();
modifyingWriter.close();
originalWriter.close();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
OutputStreamWriter originalWriter = new OutputStreamWriter(outputStream, "UTF-8");
originalWriter.flush(); // make sure everything is written
// write part 1 ModifyingWriter modifyingWriterPart1 =
new ModifyingWriterFactory().createRegexModifyingWriter(originalWriter, "abcd", "1234");
modifyingWriterPart1.write("mod "); modifyingWriterPart1.close(false);
// write to the underlying writer originalWriter.write("orig "); originalWriter.flush();
// write part 2 ModifyingWriter modifyingWriterPart2 =
new ModifyingWriterFactory().createRegexModifyingWriter(originalWriter, "abcd", "1234");
modifyingWriterPart2.write("mod "); modifyingWriterPart2.close(false);
originalWriter.close(); String result = new String(outputStream.toByteArray(), "UTF-8"); assertEquals("mod orig mod ", result);