Rheinwerk Computing < openbook >


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


Download:

- Listings, ca. 2,7 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

Pfeil19 Einführung in Dateien und Datenströme
Pfeil19.1 Alte und neue Welt in java.io und java.nio
Pfeil19.1.1 java.io-Paket mit File-Klasse
Pfeil19.1.2 NIO.2 und das java.nio-Paket
Pfeil19.1.3 java.io.File oder java.nio.*-Typen?
Pfeil19.2 Dateisysteme und Pfade
Pfeil19.2.1 FileSystem und Path
Pfeil19.2.2 Die Utility-Klasse Files
Pfeil19.3 Dateien mit wahlfreiem Zugriff
Pfeil19.3.1 Ein RandomAccessFile zum Lesen und Schreiben öffnen
Pfeil19.3.2 Aus dem RandomAccessFile lesen
Pfeil19.3.3 Schreiben mit RandomAccessFile
Pfeil19.3.4 Die Länge des RandomAccessFile
Pfeil19.3.5 Hin und her in der Datei
Pfeil19.4 Basisklassen für die Ein-/Ausgabe
Pfeil19.4.1 Die vier abstrakten Basisklassen
Pfeil19.4.2 Die abstrakte Basisklasse OutputStream
Pfeil19.4.3 Die abstrakte Basisklasse InputStream
Pfeil19.4.4 Die abstrakte Basisklasse Writer
Pfeil19.4.5 Die Schnittstelle Appendable *
Pfeil19.4.6 Die abstrakte Basisklasse Reader
Pfeil19.4.7 Die Schnittstellen Closeable, AutoCloseable und Flushable
Pfeil19.5 Lesen aus Dateien und Schreiben in Dateien
Pfeil19.5.1 Byteorientierte Datenströme über Files beziehen
Pfeil19.5.2 Zeichenorientierte Datenströme über Files beziehen
Pfeil19.5.3 Die Funktion von OpenOption bei den Files.newXXX(…)-Methoden
Pfeil19.5.4 Ressourcen aus dem Modulpfad und aus JAR-Dateien laden
Pfeil19.6 Zum Weiterlesen
 

Zum Seitenanfang

19    Einfü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[ 263 ](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

19.1    Alte und neue Welt in java.io und java.nio Zur vorigen ÜberschriftZur nächsten Überschrift

Java bringt schon seit Urzeiten Klassen und Methoden zur Dateiverarbeitung mit, und das java.io-Paket gibt es schon seit Java 1.0. In späteren Java-Versionen kamen neue Typen und neue Pakete hinzu.

 

Zum Seitenanfang

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

Das java.io-Paket deklariert eine zentrale Klasse File, die für eine Datei oder ein Verzeichnis auf dem aktuellen Dateisystem steht. File bietet zahlreiche dateiorientierte Operationen, wie Dateien anlegen, löschen, umbenennen, Verzeichnisse auflisten usw.

File-Probleme

Bei File 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, Änderungsdatum usw. 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

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

Alternativ zum Paket java.io mit der Klasse File gibt es das Paket java.nio.file mit weiteren Typen, wie Path, Paths, Files und FileSystem.

[»]  Geschichte

Die File-Probleme waren lange bekannt, und so begannen 2003 die Arbeiten an dem JSR 203, »More New I/O APIs for the Java Platform (›NIO.2‹)«. Doch erst Mitte 2011, in Java 7, kam es zum großen Wurf.

 

Zum Seitenanfang

19.1.3    java.io.File oder java.nio.*-Typen? Zur vorigen ÜberschriftZur nächsten Überschrift

Die File-Klasse ist heutzutage an den wenigsten Stellen nötig, und zwar eigentlich nur aus zwei Gründen:

  • Alte APIs erwarten als Parameter File-Objekte. Dafür gibt es Brücken zwischen den APIs, doch ersetzen die neuen NIO.2-Typen die File-Klasse im Grunde vollständig, und langfristig sollten File-Objekt nicht mehr erwartet werden.

  • File-Objekte sind nötig, wenn wirklich Dateien auf dem eigenen Datensystem repräsentiert werden sollen und nicht unabhängig vom Dateisystem. Ein gutes Beispiel ist Desktop mit der open(File)-Methode.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java ist auch eine Insel Java ist auch eine Insel

Jetzt Buch bestellen


 Buchempfehlungen
Zum Rheinwerk-Shop: Captain CiaoCiao erobert Java

Captain CiaoCiao erobert Java




Zum Rheinwerk-Shop: Java SE 9 Standard-Bibliothek

Java SE 9 Standard-Bibliothek




Zum Rheinwerk-Shop: Algorithmen in Java

Algorithmen in Java




Zum Rheinwerk-Shop: Objektorientierte Programmierung

Objektorientierte Programmierung




 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2021

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



Cookie-Einstellungen ändern