Titel | Inhalt | Suchen | Index | API | Go To Java 2, Zweite Auflage, Handbuch der Java-Programmierung |
<< | < | > | >> | Kapitel 20 - Random-Access-I/O |
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 |
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. |
|
Titel | Inhalt | Suchen | Index | API | Go To Java 2, Zweite Auflage, Addison Wesley, Version 2.0 |
<< | < | > | >> | © 2000 Guido Krüger, http://www.gkrueger.com |