Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercicio 1 - aula 4

Eu estou com dúvida na hora de criar um arquivo com o que é lido do console, pois aparece um arquivo em branco. Quando eu crio o programa lendo de um outro arquivo ele faz certo, mas ao ler do System.in ele não escreve nada no arquivo de saída.

Segue o meu código abaixo, usei o mesmo código para ambas as implementações, apenas comentando a que não ia usar naquele momento. E ao utilizar o leitor de console, após escrever o que eu queria eu finalizava o programa, naquele quadrado vermelho na barra de cima do console.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

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

        InputStream is = System.in; //new FileInputStream("leitura.txt");
        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.append(linha);
            bw.newLine();
            linha = br.readLine();
        }

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

}
1 resposta
solução!

Oi Mariane, tenta dar um flush(); no BufferedWriter, pois ele somente irá gravar com este método que por sua vez pega tudo o que você armazenou apartir da leitura do System.in e escreve no arquivo.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

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

        InputStream is = System.in; //new FileInputStream("leitura.txt");
        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();
            bw.flush();
            linha = br.readLine();

        }

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

}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software