1 / 30

Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker . Einführung in die OOP in Java. WS 07/08. Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de. Dateien und Verzeichnisse.

tacy
Télécharger la présentation

Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Einführung in die OOP in Java WS 07/08 Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de Java-Intensivkurs WS07/08 Folie 1

  2. Dateien und Verzeichnisse • Abstraktion von Dateien und Verzeichnissen: • java.io.File() • File-Objekt repräsentiert den Namen einer Datei bzw. eines Verzeichnisses • Datei bzw. Verzeichnis muss physikalisch nicht existieren • File: • Zahlreiche Methoden zur Navigation des Dateisystem & Manipulation von Dateien und Verzeichnissen Java-Intensivkurs WS07/08 Folie 2

  3. Dateien und Verzeichnisse • Konstruktoren: • File(String pathName), File(String dir, String subPath) File(File dir, String subPath) • Erzeugt ein Objekt, das eine abstrakte Repräsentation der Datei oder des Verzeichnisses kapselt • Das Instanziieren • bedeutet nicht, dass die Datei bzw. das Verzeichnis angelegt wird • setzt die Existenz der Datei bzw. des Verzeichnisses nicht voraus • File-Objekt = abstrakte Beschreibung einer Datei oder eines Verzeichnisses Java-Intensivkurs WS07/08 Folie 3

  4. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 4

  5. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 5

  6. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 6

  7. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 7

  8. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 8

  9. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 9

  10. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 10

  11. Dateien und Verzeichnisse Java-Intensivkurs WS07/08 Folie 11

  12. Dateien und Verzeichnisse src Bankkonto.java InitializationDemo.java InitLocalVar.java io FileLister.java FileCopy.javamodifier2 ForeignClassesInDifferentPackage.java Java-Intensivkurs WS07/08 Folie 12

  13. Wahlfreier Zugriff auf Dateien (RandomAccessFile) • java.io.RandomAccessFile • Mechanismus zum wahlfreien Zugriff auf Dateien • Datei: • Ein Array von Bytes, das an jeder beliebiger Stelle zugegriffen werden kann • Wahlfreier Zugriff: • Lesen und Schreiben an jeder Position innerhalb der Datei Java-Intensivkurs WS07/08 Folie 13

  14. RandomAccessFile • Konstruktoren: • RandomAccessFile(String file, String mode) • RandomAccessFile(File file, String mode) • Mode: • „r“ : Datei nur zum Lesen öffnen • „rw“ : Datei nur zum Lesen und Schreiben öffnen • „rws“ • „rwd“ • Ein RandomAccessFile-Objekt • verfügt über einen Positionierungszeiger Java-Intensivkurs WS07/08 Folie 14

  15. RandomAccessFile • Zeiger: • Wird zur Navigation innerhalb der Datei verwendet • Zeigt jedem Zeitpunkt auf eine Position innerhalb der Datei • Methoden • getFilePointer() • liefert die aktuelle Position des Zeigers • void seek(long position) • bewegt den Zeiger zur angegeben Position Java-Intensivkurs WS07/08 Folie 15

  16. RandomAccessFile • skipBytes( int n ) : • bewegt Zeiger relativ zur aktuellen Position, um n Bytes • n negativ? • keine Bytes werden übersprungen • int read(): • liefert den Byte, auf den der Zeiger gerade zeigt als int-Wert zurück • int read(byte dest[]): • versucht so viele Bytes zu lesen, so dass das Array gefüllt wird • liefert die Anzahl der gelesenen Bytes bzw. -1, wenn der Zeiger auf das Ende der Datei zeigt Java-Intensivkurs WS07/08 Folie 16

  17. RandomAccessFile • Alle Methoden erhöhen die Zeigerposition um die Anzahl der gelesenen Bytes • Zu jeder read-Methode existiert eine korrespondierende write-Methode • Alle o.g. Methoden werfen eine IOException Java-Intensivkurs WS07/08 Folie 17

  18. RandomAccessFile Java-Intensivkurs WS07/08 Folie 18

  19. RandomAccessFile Java-Intensivkurs WS07/08 Folie 19

  20. RandomAccessFile Java-Intensivkurs WS07/08 Folie 20

  21. Input- Output-Streams • Streams (Ströme) • Klassen, mit denen Dateien sequentiell gelesen und beschrieben werden • Ein Stream sieht eine Datei als: • Geordnete Folge von Bytes bzw. Zeichen, auf die er nur sequenziell zugreifen kann • Zwei Arten: • Input-Streams (Eingabeströme) • Zum Lesen • Output-Streams (Ausgabeströme) • Zum Schreiben Java-Intensivkurs WS07/08 Folie 21

  22. Input- Output-Streams • Low-Level Streams (ByteStreams): • Lesen bzw. schreiben direkt in bzw. aus einer Datei • Lesen bzw. Schreiben nur Bytes • High-Level Streams (Charactrer-Streams) • Verwenden andere Low-Level-Streams zum Lesen und Schreiben • Können Zeichen und Daten primitiver Datentypen schreiben und lesen • Reader und Writer • Verwenden andere High-Level Streams zum Lesen und Schreiben • Können Zeichen und Daten primitiver Datentypen schreiben und lesen Java-Intensivkurs WS07/08 Folie 22

  23. Low-Level-Streams (ByteStreams) • FileInputStream und FileOutputStream • Konstruktoren: • FileInputStream(String pathname) • FileInputStream(File file) • FileOutputStream(String pathname) • FileOutputStream(File file) Java-Intensivkurs WS07/08 Folie 23

  24. Low-Level-Streams (ByteStreams) Java-Intensivkurs WS07/08 Folie 24

  25. High-Level Streams • DataInputStream • DataOutputSteam Java-Intensivkurs WS07/08 Folie 25

  26. Reader & Writer • FileReader Java-Intensivkurs WS07/08 Folie 26

  27. BufferedReader • BufferedReader • Filter zur Pufferung von Eingaben • Höhere Performance beim Lesen von externen Dateien readLine(): • Liest eine komplette Textzeile und gibt sie als String zurück Java-Intensivkurs WS07/08 Folie 27

  28. BufferedReader Java-Intensivkurs WS07/08 Folie 28

  29. FileWriter • FileWriter: Java-Intensivkurs WS07/08 Folie 29

  30. BufferedWriter Java-Intensivkurs WS07/08 Folie 30

More Related