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.
Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…
Suchmaschinenoptimierung (SEO) ist ein zentraler Faktor für den nachhaltigen Erfolg im digitalen Wettbewerb. Sie generiert…
Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…
Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…
Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…
Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…