16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

}<br />

catch(IOException a)<br />

{<br />

a.pr<strong>in</strong>tStackTrace();<br />

}<br />

}<br />

}<br />

Random Access Files 135<br />

wer<strong>de</strong>n über die Klasse Random Access File realisiert. Beim Konstruktor<br />

RandomAccessFile(Str<strong>in</strong>g,Zugriffsmodus) wird neben <strong>de</strong>m Date<strong>in</strong>amen<br />

auch die Zugriffsart angegegeben ("r" nur für Lesezugriffe, "rw" zum Lesen und<br />

Schreiben). Mit <strong>de</strong>r Metho<strong>de</strong> seek(long) kann <strong>de</strong>r Dateizeiger (FilePo<strong>in</strong>ter) gesetzt<br />

wer<strong>de</strong>n, getFilePo<strong>in</strong>ter() liefert die aktuelle Position <strong>de</strong>s FilePo<strong>in</strong>ter.<br />

Weiterh<strong>in</strong> stehen zur Verfügung: length(), close(), readL<strong>in</strong>e(), read(), readByte(),<br />

readShort(), readInt(), readLong(), readFloat(), readDouble(), readChar(),<br />

readBoolean() und die analogen write-Metho<strong>de</strong>n.<br />

Bsp.: E<strong>in</strong>- und Ausgabe von und nach Dateien mit wahlfreiem Zugriff 136<br />

1. Erzeugen <strong>de</strong>r Datei rafrw (Datei mit wahlfreiem Zugriff). Auf rafrw wer<strong>de</strong>n ganze Zahlen<br />

geschrieben.<br />

2. Erzeugen <strong>de</strong>r Datei rafr (Datei mit wahlfreiem Zugriff), von <strong>de</strong>r ganze Zahlen gelesen wer<strong>de</strong>n.<br />

import java.io.*;<br />

public class RandomAccessTest<br />

{<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g[] args)<br />

throws java.io.IOException<br />

{<br />

BufferedRea<strong>de</strong>r br = new BufferedRea<strong>de</strong>r<br />

(new InputStreamRea<strong>de</strong>r(System.<strong>in</strong>));<br />

<strong>in</strong>t <strong>in</strong>tLength = 4; // Laenge <strong>de</strong>r Darstellung von ganzen Zahlen<br />

// updat<strong>in</strong>g part<br />

try<br />

{<br />

RandomAccessFile rafrw = new RandomAccessFile("testfile", "rw");<br />

System.out.pr<strong>in</strong>t("\nAen<strong>de</strong>rn e<strong>in</strong>es Datensatzes <strong>de</strong>r Datei\n");<br />

// Datensatznummer erfragen und Dateizeiger setzen und anzeigen<br />

System.out.pr<strong>in</strong>t("Datei geoeffnet. ");<br />

System.out.pr<strong>in</strong>t("Dateizeiger="+rafrw.getFilePo<strong>in</strong>ter()<br />

+" DateiLaenge="+rafrw.length()+" Byte(s)\n");<br />

System.out.pr<strong>in</strong>t("\n? Welchen Datensatz aen<strong>de</strong>rn = ");<br />

long pos = <strong>in</strong>tLength * (new Integer(br.readL<strong>in</strong>e()).<strong>in</strong>tValue());<br />

rafrw.seek(pos);<br />

System.out.pr<strong>in</strong>t( "Dateizeiger="+rafrw.getFilePo<strong>in</strong>ter()+"\n");<br />

// Falls vorhan<strong>de</strong>n, Datensatz anzeigen<br />

if (pos < rafrw.length())<br />

{<br />

// Datensatz anzeigen, Dateizeiger wie<strong>de</strong>rherstellen<br />

System.out.pr<strong>in</strong>t("Datensatz = "+rafrw.readInt()+"\n");<br />

rafrw.seek(pos);<br />

}<br />

else<br />

System.out.pr<strong>in</strong>t("Aha, Datensatz soll angefuegt wer<strong>de</strong>n.\n");<br />

// Neuen Datensatz e<strong>in</strong>lesen<br />

System.out.pr<strong>in</strong>t("\n? Neuer Datensatz = ");<br />

135 vgl. 7.4<br />

136 vgl. pr14444<br />

135

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!