Oi, Gabriela! Tudo bem?
A mensagem "java heap space" nos sinaliza que a JVM está sem memória heap disponível para executar a operação, o que ocorre quando estamos lidando com arquivos grandes, como nesse caso.
Caso o programa esteja tentando fazer a substituição de todas as quebras de linha de uma vez, isso pode causar um estouro de memória. Devido a isso, uma possível solução nesse caso é realizar essa substituição de forma incremental, lendo e escrevendo o arquivo em partes, em vez de carregá-lo inteiramente na memória. Isso pode ser feito utilizando um buffer.
Podemos, então, utilizar o BufferedReader pra ler em partes os arquivos e BufferedWriter para gravá-los em partes, reduzindo a quantidade de dados que está na memória de uma só vez.
Somado a isso, outra possível solução é aumentar o tamanho da heap da JVM, ou seja, aumentar a quantidade de memória disponível para a JVM usando as opções de linha de comando, como -Xmx e -Xms. Para isso, podemos utilizar o seguinte comando:
java -Xmx1024m -Xms512m -jar SeuAplicativo.jar
Esse comando aumentará o tamanho máximo da heap para 1024 megabytes e o tamanho inicial para 512 megabytes. Porém, podemos ajustar esses valores de acordo com a quantidade de memória disponível no nosso sistema.
Espero que essa soluções possam ajudar a resolver o problema!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓