Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage
<< | < | > | >> | API | Kapitel 20 - Random-Access-I/O

## 20.4 Schreibzugriffe

- 20.4 Schreibzugriffe

Die schreibenden Zugriffe erfolgen mit Methoden, die zu denen für die Lesezugriffe korrespondieren:

    public final void writeBoolean(boolean v)
    public final void writeByte(int v)
    public final void writeBytes(String s)
    public final void writeChar(int v)
    public final void writeChars(String s)
    public final void writeDouble(double v)
    public final void writeFloat(float v)
    public final void writeInt(int v)
    public final void writeLong(long v)
    public final void writeShort(int v)
    public final void writeUTF(String str)
| java.io.RandomAccessFile

Zusätzlich gibt es auch hier einige Methoden zum Schreiben von untypisierten Daten:

    public void write(int b)
    public void write(byte[] b)
    public void write(byte[] b, int off, int len)
| java.io.RandomAccessFile

Das folgende Beispiel zeigt ein Programm, das den Inhalt der als Argument übergebenen Datei liest und spiegelverkehrt an Ende anhängt:

    001 /* Listing2002.java */
    002
    003 import java.io.*;
    004
    005 public class Listing2002
    006 {
    007   public static void main(String[] args)
    008   {
    009     try {
    010       RandomAccessFile f1 = new RandomAccessFile(
    011         args[0], "rw"
    012       );
    013       long len = f1.length();
    014       f1.setLength(2 * len);
    015       for (long i = 0; i < len; ++i) {
    016         f1.seek(i);
    017         int c = f1.read();
    018         f1.seek(2 * len - i - 1);
    019         f1.write(c);
    020       }
    021       f1.close();
    022     } catch (IOException e) {
    023       System.err.println(e.toString());
    024     }
    025   }
    026 }
| Listing2002.java

Listing 20.2: Spiegeln einer Datei

Das Programm bestimmt zunächst die Länge der Datei und verdoppelt diese durch Aufruf von `setLength`. Dann wird die Datei von Beginn an zeichenweise gelesen und - beginnend am neuen Ende der Datei rückwärts - beschrieben. Als Resultat entsteht eine Datei, deren zweite Hälfte das Spiegelbild ihrer ersten ist.

|  | Die Klasse `RandomAccessFile` implementiert die beiden Interfaces `DataOutput` und `DataInput`, die in Abschnitt 19.2.3 und Abschnitt 19.3.3 erläutert wurden. Dadurch steht ein einheitliches Interface für den Zugriff auf Streams und Random-Access-Dateien zur Verfügung, und es ist möglich, primitive Typen wahlweise streambasiert oder wahlfrei zu verarbeiten. |  |
Hinweis

Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de