From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100132.html | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100132.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100132.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100132.html b/Master/Reference Architectures and Patterns/hjp5/html/k100132.html new file mode 100644 index 0000000..6db94d1 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100132.html @@ -0,0 +1,184 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 20 - Random-Access-I/O +
+
+ + + + +

20.2 Navigation in der Datei

+
+ +
+ + + + +

20.2.1 Positionierung des Dateizeigers

+ +

+Der Hauptunterschied zwischen dem sequenziellen und dem wahlfreien +Zugriff auf eine Datei besteht darin, dass beim wahlfreien Zugriff +mit einem expliziten Satzzeiger gearbeitet wird. Jeder Schreib- +und Lesezugriff erfolgt an der Position, die durch den aktuellen Inhalt +des Satzzeigers bestimmt wird, und positioniert den Zeiger um die +Anzahl gelesener bzw. geschriebener Bytes weiter. Die Klasse RandomAccessFile +stellt verschiedene Methoden zum Zugriff auf den Satzzeiger zur Verfügung: +

+ + + + + +
+ +
+public long getFilePointer()
+
+public void seek(long pos)
+
+public void skipBytes(int n)
+
+public long length()
+
+
+
+java.io.RandomAccessFile
+ +

+getFilePointer +liefert die aktuelle Position des Satzzeigers; das erste Byte einer +Datei steht dabei an Position 0. Da der Rückgabewert vom Typ +long +ist, unterstützt Java den Zugriff auf Dateien, die größer +als 2 GByte sind, sofern es das Betriebssystem zuläßt. + +

+Das Positionieren des Satzzeigers erfolgt mit der Methode seek +an die durch pos angegebene +Stelle. Anders als in C bezieht sich der Wert von pos +dabei immer auf den Anfang der Datei. Das Positionieren relativ zur +aktuellen Position kann mit der Methode skipBytes +erledigt werden. Die neue Position wird dabei aus der aktuellen Position +plus dem Inhalt des Parameters n +berechnet. Auch negative Werte für n +sind dabei erlaubt und bewirken eine Rückwärtsverschiebung +des Satzzeigers. +

+ + + + + + + + + +
+ +

+Es ist erlaubt, den Satzzeiger hinter das derzeitige Ende der Datei +zu verschieben. Allerdings wird dadurch ihre tatsächliche Länge +nicht verändert. Dies geschieht erst, wenn an der angesprungenen +Position tatsächlich Zeichen geschrieben werden.

+ + + + +
 Hinweis 
+
+ + + + +

20.2.2 Die Länge der Datei

+ +

+Die Klasse RandomAccessFile +besitzt zwei Methoden zum Zugriff auf die Länge der Datei: +

+ + + + + +
+ +
+public long length()
+  throws IOException
+
+public void setLength(long length)
+  throws IOException
+
+
+
+java.io.RandomAccessFile
+ +

+Mit length +kann die derzeitige Länge der Datei bestimmt werden. Nach dem +Öffnen einer bestehenden Datei liefert diese Methode deren initiale +Länge. Schreibzugriffe am Ende der Datei erhöhen diesen +Wert. Mit setLength +kann die Länge der Datei verändert werden. Ist der als Argument +übergebene Wert kleiner als die bisherige Länge, wird die +Datei verkürzt. Ein eventuell dahinter stehender Dateizeiger +wird auf das neue Ende der Datei gesetzt. Ist das Argument größer +als die bisherige Länge, wird die Datei vergrößert. +Der Wert der neu eingefügten Bytes bleibt allerdings undefiniert, +bis sie explizit beschrieben werden. +


+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3