FileWrite

Sobre FileWriter, o que devo fazer para que a classe de escrita, não sobrescreva todos os caracteres contidos em um arquivo, sempre que uma nova escrita for feita neste arquivo?

Uma das coisas que vc pode fazer é usar este contructor:

public FileWriter​(String fileName, boolean append) throws IOException

Ele recebe como primeiro argumento o nome do arquivo e o segundo diz se vc quer sobreescrever (false) ou apenas adicionar novos conteúdos (true).

Olha um exemplo:

import java.io.FileWriter;
import java.io.IOException;

public class Main {
  public static void main(String... args) throws IOException {
    try (final var f = new FileWriter("text.txt", true)) {
      for (int i = 0; i < 5; i++) {
        f.write(i + "\n");
      }
    }
  }
}