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

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.1
 <<    <     >    >>   API  © 1998-2003 Guido Krüger, http://www.javabuch.de