Pessoal, bom dia, estou fazendo testes para solidificar o aprendizado referente a arquivos e tal. Eu estou fazendo um teste, e uma das opções do teste é o usuário escolher um arquivo, e apenas o sistema verificar se esse arquivo já existe, pedir para o usuário digitar a mensagem a ser gravada no console. Essa mensagem é via console. O usuário digita a mensagem dele no console, e é para ser gravada no arquivo. Fielmente, essa é a ideia. Ou seja, se no console ele aperta enter, no arquivo eu gostaria que pulasse uma linha.
Vou colocar abaixo o código:
if(verificaExiste(nomeArquivo)) {
FileWriter fw = new FileWriter(nomeArquivo, Charset.forName("UTF-8"));
System.out.println("Digite o conteudo do arquivo: ");
Scanner conteudoArquivo = new Scanner(System.in);
while(!conteudoArquivo.nextLine().equals("")) {
fw.write("\n");
fw.write(conteudoArquivo.nextLine());
}
fw.close();
} else {
throw new ArquivoInexistenteException();
}
Não deu certo não. O usuário pode digitar o que for, que no arquivo nao fica igual. Normalmente no arquivo só fica a ultima linha, mas é estranho, ja aconteceu caso de ficar 2 linhas, já acontece caso de concatenar linhas. Cada ora uma saída. Mas nunca como eu gostaria. Já tentei debugar, mas nao consegui pegar o erro DESCONFIO que o o erro esteja no nextLine(), acho que talvez não seja o método mais adequado. E desconfio que ao digitar no console a mensagem, o "enter" que seria a quebra de linha não tem o mesmo efeito. Mas nao conseggui chegar numa conclusão.
Depois quero fazer o processo inverso. Quero pegar o conteúdo desse arquivo e jogar no console. Também estou travado nessa parte. O FileReader aparentemente nao tem a opção de ler o arquivo e devolver uma string inteira.
Ajudas, por favor amigos? Quero sair desta parte, estou travado