You want to either flush the PrintWriter
to make sure the changes in its buffer are written out first, before you set the RandomAccessFile
's length to 0, or close it and re-open a new PrintWriter
to write the last line (Text to be written...). Preferably the former:
if (clearCondition) {
writer.flush();
new RandomAccessFile("temp","rw").setLength(0);