Algumas das principais subclasses de InputStream, parte do pacote java.io, são aquelas que determinam a origem dos dados. São elas:
Além dessas, outras classes do pacote java.io
derivadas de InputStream
são aquelas que agregam alguma
funcionalidade à leitura dos dados. Por exemplo, para interpretar os
bytes lidos como valores dos tipos primitivos da linguagem Java é
possível combinar o objeto InputStream
(de qualquer dos
tipos acima) com um objeto
DataInputStream. Similarmente, para ler uma representação binária
de um objeto previamente serializado (ver
serialização), usa-se um
objeto da classe
ObjectInputStream.