1
resposta

Por que o InputStream e o OutputStream não precisam ser instanciados no System.in e System.out, repectivamente?

Eu achei interessante que não precisou ser instanciada a InputStream, quando usamos o System.in. Por exemplo: o código da aula ficou InputStream fis = System.in;

já para quando criou um file ficou InputStream fis = new FileInputStream("lorem.txt");

Por que não precisa ser instanciada a classe InputStream para colocar o System.in?? Eu imaginava que se fosse para usar um System.in seria mais ou menos desse jeito InputStream is = new ClasseUtilizadaParaUsarOTeclado(System.in);

1 resposta

Oi Eduardo, tudo bem?

System.in é uma variável estática. Por baixo ele é um InputStream conectado à entrada do teclado dos programas do console. Em outras palavras, se você iniciar um aplicativo Java a partir da linha de comando e digitar algo no teclado enquanto o console (ou terminal) da CLI estiver focado, a entrada do teclado poderá ser lida via System.in a partir desse aplicativo Java.