Na aula sobre entrada de dados utilizando FileInputStream e InputStreamReader e sugerido utilizar os tipos mais genéricos InputStream e Reader. Gostaria de saber qual é a vantagem de se utilizar esses tipos ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Na aula sobre entrada de dados utilizando FileInputStream e InputStreamReader e sugerido utilizar os tipos mais genéricos InputStream e Reader. Gostaria de saber qual é a vantagem de se utilizar esses tipos ?
Boa tarde Mario! A vantagem é facilitar a modificação do seu código, caso necessário.
Se você define assim:
FileInputStream fis = new FileInputStream("lorem.txt");Com um tipo específico, vai precisar alterar em dois lugares, caso mude o tipo de objeto de entrada (AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream).
Se definir assim:
InputStream fis = new FileInputStream("lorem.txt");Só vai precisar alterar em um lugar, após o "new".
Oi Mário, tudo bem?
O FileInputStream estende a classe InputStream: é uma versão especial de um InputStream projetado especificamente para leitura de arquivos. Ou seja, um FileInputStream é um InputStream especializado que só funciona com arquivos.
Já o InputStream em si é mais geral - além de FileInputStream, você também pode recuperar InputStreams para ler de URLs (através de java.net.URL e java.net.URLConnection), bancos de dados (através de java.sql.ResultSet) ou, em teoria, qualquer fonte de dados.