Kurz erklärt
Ein Datenstrom, über den ein Programm sequenziell Daten liest (Input) oder schreibt (Output) — die gemeinsame Abstraktion hinter Datei-, Netzwerk- und Konsolen-Ein-/Ausgabe.
Genauer
Streams verarbeiten Daten üblicherweise Stück für Stück statt alles auf einmal, was auch sehr große Datenmengen handhabbar macht, ohne sie komplett im Speicher zu halten. Man unterscheidet Byte-Streams (rohe Bytes, z. B. FileInputStream) und Zeichen-Streams (Text mit Zeichenkodierung), sowie ungepufferte und gepufferte Varianten.