Ziel dieses Kapitels ist die Darstellung der Möglichkeiten, die in Java zum Austausch von Daten zur Verfügung stehen. Zunächst wurden Streaming-Konzepte betrachtet, mit deren Hilfe Daten von Streams gelesen und in solche geschrieben werden können. Anschließend wurde detailliert die Sicherheitstechnik von Java vorgestellt, deren genaue Kenntnis eine flexible, aber sichere Verwendung der I/O-Funktionen in Java ermöglicht. Anschließend wurde mit URLs, Sockets und Datagrammen die Netzwerkfunktionalität von Java vorgestellt. Hierbei ist besonders gut das Zusammenwirken von Streams und Netzwerkfunktionen zu erkennen, da Streams gerade bei URLs und Sockets häufig zur Übertragung von Daten über Netzwerke eingesetzt werden. Den Abschluss des Kapitels bildete das Anwendungsbeispiel, in dem dargestellt wurde, wie mit Hilfe von Sockets eine Client-Server-Applikation entwickelt werden muss, mit deren Hilfe der Datenaustausch zwischen Spieler und Rechner im Spiel Schiffe versenken vor sich geht. Der Leser sollte nach der Lektüre dieses Kapitels in der Lage sein, I/O-Funktionen zu beherrschen und beurteilen zu können, an welchen Stellen die Sicherheitsrestriktionen verändert werden müssen, um eine zuverlässige und konsistente Datenübertragung zu ermöglichen.