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 ?
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.