Einfach und übertragbar: Mit Java-Streams Daten lesen und schreiben

Die Input/Output-Optionen (I/O) von Java stellen eine einfache, standardisierte API zum Lesen und Schreiben zeichen- oder bytebasierter Daten aus unterschiedlichen Datenquellen bereit. Im Folgenden sollen die I/O-bezogenen Klassen, Schnittstellen und Operationen vorgestellt werden, die die Java-Plattform bereitstellt. Vorab ist aber ein Blick auf Java-Streams nötig.

I/O-Streams

Alle Ein- und Ausgabeoperationen in Java basieren auf Streams, also auf dynamischen Abfolgen von Zeichen oder Bytes. Javas I/O-Streams bieten ein standardisiertes Verfahren zum Lesen und Schreiben von Daten. Dabei stellt jedes Objekt, das eine veränderbare Datenquelle in Java repräsentiert, seine Methoden zum Lesen und Schreiben von Daten als Stream zur Verfügung.

Für die meisten streambasierten I/O-Klassen ist java.io das wichtigste Paket. Es hält zwei abstrakte Klassen bereit, InputStream und OutputStream. Alle anderen streambasierten I/O-Klassen erweitern diese Basisklassen.

Das Paket java.io beinhaltet eine Reihe von Klassen und Interfaces, die nützliche Abstraktionen der grundlegenden Schreib- und Leseoperationen für Zeichen und Bytes darstellen, wie sie die Klassen InputStream und OutputStream definieren. Beispielsweise liefert die ObjectInputStream-Klasse Methoden, mit denen man Daten aus einem Stream als Java-Objekt lesen kann. Die ObjectOutputStream-Klasse bietet hingegen Methoden, mit denen man Daten als Java-Objekt in einen Stream schreiben kann.

Optimierte Lese- und Schreibvorgänge

JDK 1.1 bringt eine Reihe von Reader- und Writer-Klassen mit, die nützlichere Abstraktionen und eine verbesserte I/O-Performance bieten als die vorhandenen Stream-Klassen. So gibt es zum Beispiel die Klassen BufferedReader und BufferedWriter zum Lesen und Schreiben von Text mit zeichenbasierten Input- und Output-Streams. Die BufferedReader-Klasse buffert Zeichen zum effizienteren Lesen von Zeichen, Arrays und Zeilen. Entsprechend buffert die BufferedWriter-Klasse Zeichen zum effizienteren Schreiben von Zeichen, Arrays und Strings. Die Größe des von den beiden Klassen verwendeten Puffers kann je nach Bedarf eingestellt werden.

Zu den vom Java-I/O-Framework bereitgestellten Reader- und Writer-Klassen gehören unter anderem auch die Klassen LineNumberReader, CharArrayReader, FileReader, FilterReader, PushbackReader, PipedReader und StringReader. Diese Klassen sind Wrapper für die Klassen InputStream und OutputStream. Daher stellen sie ähnliche Methoden wie diese beiden Klassen zur Verfügung. Allerdings bieten sie effizientere und nützlichere Abstraktionen zum Lesen und Schreiben von bestimmten Objekten, etwa Dateien, Zeichenarrays oder Strings.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Gefahren im Foxit PDF-Reader

Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.

2 Tagen ago

Bitdefender entdeckt Sicherheitslücken in Überwachungskameras

Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.

2 Tagen ago

Top-Malware in Deutschland: CloudEye zurück an der Spitze

Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…

2 Tagen ago

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

3 Tagen ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

3 Tagen ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

3 Tagen ago