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

CopyRhadamantys greift weltweit Unternehmen an

Ausgeklügelte Phishing-Kampagne verwendet eine weiterentwickelte Version der Rhadamanthys-Stealer-Malware.

2 Tagen ago

Facebook Marketplace: EU verhängt Geldbuße von fast 800 Millionen Euro gegen Meta

Die EU-Kommission kritisiert die Verknüpfung von Facebook und dem hauseigenen Online-Kleinanzeigendienst. Sie sieht darin einen…

3 Tagen ago

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

3 Tagen ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

3 Tagen ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

3 Tagen ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

4 Tagen ago