Rheinwerk Computing < openbook >


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


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 20 Einführung in Dateien und Datenströme
Pfeil 20.1 Alte und neue Welt in java.io und java.nio
Pfeil 20.1.1 java.io-Paket mit File-Klasse
Pfeil 20.1.2 NIO.2 und das java.nio-Paket
Pfeil 20.1.3 java.io.File oder java.nio.*-Typen?
Pfeil 20.2 Dateisysteme und Pfade
Pfeil 20.2.1 FileSystem und Path
Pfeil 20.2.2 Die Utility-Klasse Files
Pfeil 20.3 Dateien mit wahlfreiem Zugriff
Pfeil 20.3.1 Ein RandomAccessFile zum Lesen und Schreiben öffnen
Pfeil 20.3.2 Aus dem RandomAccessFile lesen
Pfeil 20.3.3 Schreiben mit RandomAccessFile
Pfeil 20.3.4 Die Länge des RandomAccessFile
Pfeil 20.3.5 Hin und her in der Datei
Pfeil 20.4 Basisklassen für die Ein-/Ausgabe
Pfeil 20.4.1 Die vier abstrakten Basisklassen
Pfeil 20.4.2 Die abstrakte Basisklasse OutputStream
Pfeil 20.4.3 Die abstrakte Basisklasse InputStream
Pfeil 20.4.4 Die abstrakte Basisklasse Writer
Pfeil 20.4.5 Die Schnittstelle Appendable *
Pfeil 20.4.6 Die abstrakte Basisklasse Reader
Pfeil 20.4.7 Die Schnittstellen Closeable, AutoCloseable und Flushable
Pfeil 20.5 Lesen aus Dateien und Schreiben in Dateien
Pfeil 20.5.1 Byteorientierte Datenströme über Files beziehen
Pfeil 20.5.2 Zeichenorientierte Datenströme über Files beziehen
Pfeil 20.5.3 Die Funktion von OpenOption bei den Files.new*(…)-Methoden
Pfeil 20.5.4 Ressourcen aus dem Modulpfad und aus JAR-Dateien laden
Pfeil 20.6 Zum Weiterlesen
 

Zum Seitenanfang

20    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

20.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

20.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

20.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

20.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: Algorithmen in Java

Algorithmen in Java




Zum Rheinwerk-Shop: Spring Boot 3 und Spring Framework 6

Spring Boot 3 und Spring Framework 6




Zum Rheinwerk-Shop: Java SE 9 Standard-Bibliothek

Java SE 9 Standard-Bibliothek




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

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2024

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