Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Lendo terminal e gravando em arquivo.txt

Estou tentando ler informações do terminal e gravar arquivo, porém não grava no arquivo. Só grava no arquivo de saída quando leio de outro arquivo. alguém sabe o motivo ? Abaixo o código :

GRATO...

public class GravarArquivo { public static void main(String[] args) throws IOException {

//InputStream is = new FileInputStream("Entrada1.txt");

InputStream is = System.in;//* LER TERMINAL

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

OutputStream os = new FileOutputStream("saida.txt"); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw);

String linha = br.readLine(); // primeira linha

while (linha !=null) {

bw.write(linha);

bw.newLine(); linha = br.readLine(); }

bw.close(); br.close(); }

3 respostas

Cara seu código tá ok. O problema deve ser na hora de encerrar a entrada de dados do teclado no console. Após digitar o texto no console, pressione enter para entrar no while e depois Ctrl + z para encerrar a entrada de dados. Atualize o projeto e abra o arquivo de saída. Se você quiser reescrever o arquivo de saída adicione true como segundo parâmetro no FileOutputStream assim:

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

Lembre-se de formatar seu código aqui no editor para melhorar a leitura do mesmo.

public class TestaEntradaTecladoSaidaArquivo {

    public static void main(String[] args) throws IOException {
        InputStream is = System.in;
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        OutputStream os = new FileOutputStream("saida.txt");
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(osw);

        String linha = br.readLine();
        while (linha != null) {
            bw.write(linha);
            bw.newLine();
            linha = br.readLine();            
        }

        br.close();
        bw.close();
    }
}

Bons estudos!

solução!

Isaac, obrigado. Problema resolvido.

Eu estava acionando o botão do terminal.