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

Porque o fluxo de escrita possui a mesma estrutura do fluxo de leitura ?

public class TesteEscrita {

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

        //Fluxo de Saída com Arquivo

        OutputStream fos = new FileOutputStream("Lorem2.txt"); 
        Writer osw = new OutputStreamWriter(fos);  
        BufferedWriter bw = new BufferedWriter(osw); 

        bw.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit");
        //bw.newLine();
        bw.newLine();
        bw.write("ajslkdjflasjldkfjalsjdlkf");
        bw.close();

    }

}

Leitura: Pego o arquivo > Transformo Binário em Bytes > Transformo Bytes em String.

FileInputStream > InputStreamReader > BufferedReader'

Escrita: Escrevo o arquivo ? > Transformo Binário em Bytes (antes de ter os Bytes?) > Escrevo a String em um Writer.

FileOutputStream > OutputStreamWriter > BufferedWriter.

Não entendi muito bem o funcionamento desse fluxo ... Tudo funciona dinamicamente ? o BufferedWriter já escreve dentro do OutputStreamWriter ?

1 resposta
solução!

Oi Dario, acho que o processo de leitura tá correto, mas o de escrita parece bem estranho, não é mesmo? O esperado é que tivéssemos o transformássemos a string em fluxo de bytes pra só depois escrever no arquivo, correto?

A ideia é essa mesma, mas veja que, a ordem no código não indica necessariamente a ordem de como as coisas acontecerão dentro dos panos.

Essa é uma questão relativa aos padrões de projetos aplicados na API. Por mais que a ordem de execução seja inversa, as ligações dos fluxos precisam estar estabelecidas antes de tudo acontecer de fato, concorda?

Lembra do conceito de pilha? Ele também é aplicado ai. Faz sentido pra você?