2
respostas

Porque utilizar um timo mais generico

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 ?

2 respostas

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.