koncipovány jako "stavebnice" - lze vkládat do sebe a tím přidávat vlastnosti, např.
is = new InputStream(...);
bis = new BufferedInputStream(is);
Téměř vše ze vstupních/výstupních tříd a rozhraní je v balíku java.io.
počínaje J2SDK1.4 se rozvíjí alternativní balík - java.nio (New I/O)