Tudo oque quero fazer é ler um arquivo txt e escrever em outro quebrando de linha onde existe um ponto final. No arquivo que estou lendo pode haver qualquer coisa desde uma quantidade grande de linhas em branco e vários pontos finais na mesma linha.
Gostaria de saber porque o código abaixo não funciona em algumas situações?
public static void formatSentences(File entrada, File saida){
// cria o Scanner para ler e o PrintWriter para escrever
Scanner sc = null;
PrintWriter pw = null;
String linha="";
try {
sc = new Scanner(entrada);
pw = new PrintWriter(saida);
// enquanto houverem mais linhas na entrada
while (sc.hasNextLine()) {
String aux = sc.nextLine();
linha = linha+aux;
// quebra a linha somente se existir um ponto, se não vai concatenando
if (linha.contains(".")){
linha = linha.replace(". ", ".\n");
pw.print(linha.trim());
linha = "";
}else
linha = linha+" ";
}
// informa que tudo correu bem
System.out.println("Arquivo processado com sucesso!");
} catch (FileNotFoundException e) {
// como verificamos se os arquivos existiam antes, isso não deve ocorrer
// mesmo assim é boa prática capturar e tratar essa exceção
System.err.println("Não foi possível econtrar arquivo: " + e.getMessage());
} finally {
// para finalizar, fechamos os recursos que usamos
if (sc != null) {
sc.close();
}
if (pw != null) {
pw.flush();
pw.close();
}
}
}
Desde já grato pela colaboração!