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

Forma de entrada via rede não funcionou, o professor errou? como resolver?

package br.com.alura.java.io.teste;

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import java.net.Socket;

public class TesteCopiarArquivo {

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

        Socket s = new Socket().getInputStream();

        InputStream fis = s.getInputStream(); //System.in; //new FileInputStream("lorem.txt");
        Reader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);

        OutputStream fos = s.getOutputStream(); //System.out; //new FileOutputStream("lorem2.txt");
        Writer osw = new OutputStreamWriter(fos);
        BufferedWriter bw = new BufferedWriter(osw);

        String linha = br.readLine();

        while(linha != null && !linha.isEmpty()) {

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

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

}

}

2 respostas
solução!

Fala, Jonas! Tudo bem contigo?

Não houve um erro não, apesar de constar erro na IDE rs!

O que aconteceu é que ao utilizar o Socketele reclama que não conectamos a algum servidor.

Quando você partir para Java Web (se for sua intenção), trabalhará com servidores para testar a aplicação, e nesses casos será possível a utilização do Socket.

O professor só quis dar um exemplo, já que estava dentro do assunto, mas necessita de uma conexão.

Mas vamos arrumar um ponto!!!

No local onde está instanciando o Socket vamos remover o getInputStreame verá que voltará a compilar.

Socket s = new Socket();

Para utilizarmos o getInputStream, volto a dizer, precisamos conectar a um server.

Só um exemplo de utilização desse método get

///código omitido
DataInputStream inputStream=new DataInputStream(  
                new BufferedInputStream(socket.getInputStream()));  
        System.out.println("Input Stream: "+inputStream);  

Após remover o get, ao rodar vemos que vai gerar o erro, só para comprovar a falta do server

Imgur

Espero ter ajudado, Jonas!!!

Um abraço e bons estudos!!!

Obrigado pela resposta, eu imagina mesmo necessitar de uma conexão, mas o que me intrigou foi o Eclipse criticar o código no meu PC e no do professor não. Sim, vou estudar WEB! Abçs