Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 
Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Objektorientierte Beziehungsfragen
7 Ausnahmen müssen sein
8 Äußere.innere Klassen
9 Besondere Typen der Java SE
10 Generics<T>
11 Lambda-Ausdrücke und funktionale Programmierung
12 Architektur, Design und angewandte Objektorientierung
13 Komponenten, JavaBeans und Module
14 Die Klassenbibliothek
15 Einführung in die nebenläufige Programmierung
16 Einführung in Datenstrukturen und Algorithmen
17 Einführung in grafische Oberflächen
18 Einführung in Dateien und Datenströme
19 Einführung ins Datenbankmanagement mit JDBC
20 Einführung in <XML>
21 Testen mit JUnit
22 Bits und Bytes und Mathematisches
23 Die Werkzeuge des JDK
A Java SE-Paketübersicht
Stichwortverzeichnis


Download:

- Beispielprogramme, ca. 35,4 MB


Buch bestellen
Ihre Meinung?



Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenboom

Einführung, Ausbildung, Praxis
Buch: Java ist auch eine Insel


Java ist auch eine Insel

Pfeil 18 Einführung in Dateien und Datenströme
Pfeil 18.1 API für Dateien, Verzeichnisse und Verzeichnissysteme
Pfeil 18.1.1 java.io-Paket mit File-Klasse
Pfeil 18.1.2 NIO.2 und java.nio-Paket
Pfeil 18.2 Datei und Verzeichnis
Pfeil 18.2.1 FileSystem und Path
Pfeil 18.2.2 Die Utility-Klasse Files
Pfeil 18.2.3 Dateien kopieren und verschieben
Pfeil 18.2.4 Neue Dateien, Verzeichnisse, symbolische Verknüpfungen anlegen und löschen
Pfeil 18.3 Dateien mit wahlfreiem Zugriff
Pfeil 18.3.1 Ein RandomAccessFile zum Lesen und Schreiben öffnen
Pfeil 18.3.2 Aus dem RandomAccessFile lesen
Pfeil 18.3.3 Schreiben mit RandomAccessFile
Pfeil 18.3.4 Die Länge des RandomAccessFile
Pfeil 18.3.5 Hin und her in der Datei
Pfeil 18.4 Stream-Klassen für Bytes und Zeichen
Pfeil 18.4.1 Lesen aus Dateien und Schreiben in Dateien
Pfeil 18.4.2 Byteorientierte Datenströme über Files beziehen
Pfeil 18.4.3 Zeichenorientierte Datenströme über Files beziehen
Pfeil 18.4.4 Funktion von OpenOption bei den Files.newXXX(…)-Methoden
Pfeil 18.4.5 Ressourcen aus dem Klassenpfad und aus JAR-Archiven laden
Pfeil 18.4.6 Die Schnittstellen Closeable, AutoCloseable und Flushable
Pfeil 18.5 Basisklassen für die Ein-/Ausgabe
Pfeil 18.5.1 Die abstrakten Basisklassen
Pfeil 18.5.2 Übersicht über Ein-/Ausgabeklassen
Pfeil 18.5.3 Die abstrakte Basisklasse OutputStream
Pfeil 18.5.4 Die abstrakte Basisklasse InputStream
Pfeil 18.5.5 Die abstrakte Basisklasse Writer
Pfeil 18.5.6 Die abstrakte Basisklasse Reader
Pfeil 18.6 Datenströme filtern und verketten
Pfeil 18.6.1 Streams als Filter verketten (verschachteln)
Pfeil 18.6.2 Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream
Pfeil 18.6.3 Gepufferte Eingaben mit BufferedReader/BufferedInputStream
Pfeil 18.7 Vermittler zwischen Byte-Streams und Unicode-Strömen
Pfeil 18.7.1 Datenkonvertierung durch den OutputStreamWriter
Pfeil 18.7.2 Automatische Konvertierungen mit dem InputStreamReader
Pfeil 18.8 Zum Weiterlesen
 

Zum Seitenanfang

18Einführung in Dateien und Datenströme Zur vorigen ÜberschriftZur nächsten Überschrift

»Schlagfertigkeit ist jede Antwort, die so klug ist, dass der Zuhörer wünscht, er hätte sie gegeben.«

– Elbert Green Hubbard (1856–1915)

Computer sind für uns so nützlich, weil sie Daten bearbeiten. Der Bearbeitungszyklus beginnt mit dem Einlesen der Daten, umfasst das Verarbeiten und endet mit der Ausgabe der Daten. In der deutschsprachigen Informatikliteratur wird deswegen auch vom EVA-Prinzip der Datenverarbeitungsanlagen gesprochen. In frühen EDV-Zeiten wurde die Eingabe vom Systemoperator auf Lochkarten gestanzt. Glücklicherweise sind diese Zeiten vorbei. Heutzutage speichern wir unsere Daten in Dateien (engl. files[ 248 ](Das englische Wort »file« geht auf das lateinische Wort »filum« zurück. Dies bezeichnete früher eine auf Draht aufgereihte Sammlung von Schriftstücken. )) und Datenbanken ab. Es ist wichtig anzumerken, dass eine Datei nur in ihrem Kontext interessant ist, andernfalls beinhaltet sie für uns keine Information – die Sichtweise auf eine Datei ist demnach wichtig. Auch ein Programm besteht aus Daten und wird oft in Form einer Datei repräsentiert.

 

Zum Seitenanfang

18.1API für Dateien, Verzeichnisse und Verzeichnissysteme Zur vorigen ÜberschriftZur nächsten Überschrift

 

Zum Seitenanfang

18.1.1java.io-Paket mit File-Klasse Zur vorigen ÜberschriftZur nächsten Überschrift

Das java.io-Paket gibt es schon seit Java 1.0. Es deklariert eine zentrale Klasse File, und diese bietet zahlreiche dateiorientierte Operationen. Dazu zählen Möglichkeiten, Dateien anzulegen, zu löschen, umzubenennen und sie in Verzeichnissen zu strukturieren. Allerdings konzentriert sich alles auf eine Klasse, und sie kann alltägliche Probleme nicht wirklich lösen:

  • Wie lässt sich eine Datei einfach und schnell kopieren?

  • Wie lässt sich eine Datei verschieben, wobei die Semantik auf unterschiedlichen Plattformen immer gleich ist?

  • Wie lässt sich auf eine Änderung im Dateisystem reagieren, sodass uns ein Callback informiert, sobald sich eine Datei verändert hat?

  • Wie lässt sich einfach ein Verzeichnis rekursiv ablaufen?

  • Wie lässt sich eine symbolische Verknüpfung anlegen und verfolgen?

  • Die File-Klasse wurde immer mehr zum Sammelbecken für alle möglichen Anfragemethoden wie Lesbarkeit und Änderungsdatum. Ein Problem ist dabei, dass gewisse Dinge nicht wirklich auf jedem System identisch sind – etwa die Dateirechte.

  • Wie lässt sich realisieren, dass die File-Operationen abstrahiert werden und nicht nur auf dem lokalen Dateisystem basieren? Wünschenswert ist eine Abstraktion, sodass die gleiche API auch ein virtuelles Dateisystem im Hauptspeicher, entfernte Dateisysteme wie FTP oder ein Repository anspricht.

 

Zum Seitenanfang

18.1.2NIO.2 und java.nio-Paket Zur vorigen ÜberschriftZur nächsten Überschrift

Diese Probleme wurden für Java 7 angegangen und in der JSR-203, »More New I/O APIs for the Java Platform (›NIO.2‹)«, spezifiziert. Die JSR begann schon 2003, und so waren die Erwartungen der Java-Community groß, dass sie nicht so lange warten müssten. Aber erst in Java 7 kam es zum großen Wurf. Das macht die »alte« File-Klasse eigentlich überflüssig, aber vermutlich scheut sich Oracle davor, ein @Deprecated an die Klasse zu setzen, denn sonst würden plötzlich riesige Mengen Quellcode in vielen Programmen markiert.

Die neuen Typen befinden sich im Gegensatz zu File, das im java.io-Paket liegt, im Paket java.nio.file. Es gibt zwar Brücken zwischen den APIs, doch ersetzen die neuen NIO.2-Typen die File-Klasse vollständig. Wir setzen daher die aktuellen und leistungsfähigen Typen in den Vordergrund und schieben die nunmehr uninteressante Klasse File nach hinten.

 


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
 Zum Katalog
Zum Katalog: Java ist auch eine Insel Java ist auch eine Insel

Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?

Ihre Meinung



 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel

Java ist auch eine Insel




Zum Katalog: Java SE 9-Standard-Bibliothek

Java SE 9-Standard-Bibliothek




Zum Katalog: Professionell entwickeln mit Java EE 8

Professionell entwickeln mit Java EE 8




Zum Katalog: Entwurfsmuster

Entwurfsmuster




Zum Katalog: IT-Projektmanagement

IT-Projektmanagement




 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2017

Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 

[Rheinwerk Computing]



Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de