Como percorrer e escrever na próxima linha vazia de um arquivo txt?

Olá pessoal, gostaria de saber como percorrer e escrever na próxima linha vazia de um arquivo txt…

A situação é essa, eu tenho em minha aplicação uma classe responsável por escrever um arquivo txt uma
messagem com o erro de um tra/catch, assim:

public void grava_ERRO(String messagem) {

try {

Calendar data, hora;

data = Calendar.getInstance();
int dia = data.get(Calendar.DAY_OF_MONTH);
int mes = 1 + data.get(Calendar.MONTH);
int ano = data.get(Calendar.YEAR);

hora = Calendar.getInstance();
int hh = hora.get(Calendar.HOUR_OF_DAY);
int mm = hora.get(Calendar.MINUTE);
int ss = hora.get(Calendar.SECOND);

Object aux = (dia + "/" + mes + "/" + ano + " - " + hh + ":" + mm + ":" + ss);
String hora_do_erro = aux.toString();

OutputStream os = new FileOutputStream("log.txt");

OutputStreamWriter osw = new OutputStreamWriter(os);

BufferedWriter bw = new BufferedWriter(osw);

bw.write(hora_do_erro + " " + messagem);

bw.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

O método acima recebe uma String com erro e grava no arquivo…
Na prática fica assim:

try{

//Algum trecho de código que possa gerar um erro


}catch (Exception e){

String messagem = e.getMessage();

ControleDeErro erro = new ControledeErro();

erro.grava_ERRO(messagem);//chama o método descrito acima

}

A pergunta é: Como percorrer o arquivo e escrever depois da última linha
escrita anteriormente??? Pq do jeito ki tá ela só tá escrevendo na 1° linha, ou seja,
toda vez ki ocorre um erro ele sobrescreve a msg anterior…

Abraço

[RESOLVIDO]

Na hora de criar o FileOutputStream usa-se o construtor com dois argumentos, passando true para o append (segundo argumento):

e o código ficou assim:

OutputStream os = new FileOutputStream("log.txt",true);

OutputStreamWriter osw = new OutputStreamWriter(os);

BufferedWriter bw = new BufferedWriter(osw);
			
bw.newLine();
			
bw.append(hora_do_erro + " " + messagem);
			
bw.close();

No caso, ainda coloquei um newLine() para criar
uma nova linha, senão a messagem é escrita na mesma
linha da anterior