diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/html/k100132.html | |
| download | Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2 | |
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100132.html')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/html/k100132.html | 184 |
1 files changed, 184 insertions, 0 deletions
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 @@ +<html>
+<head>
+<title>
+Handbuch der Java-Programmierung, 5. Auflage
+</title>
+</head>
+<body>
+<a name="startofbody"></a>
+<script language="JavaScript" src="hjp4lib.js">
+</script>
+<script language="JavaScript">
+installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100130.html;106,k100131.html;107,k100133.html;108,k100136.html");
+</script>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100130.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100131.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100133.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100136.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">Kapitel 20 - Random-Access-I/O
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel2id020002"></a>
+<h2>20.2 Navigation in der Datei </h2>
+<hr>
+<ul>
+<li><a href="k100132.html#sectlevel2id020002">20.2 Navigation in der Datei</a>
+<ul>
+<li><a href="k100132.html#sectlevel3id020002001">20.2.1 Positionierung des Dateizeigers</a>
+<li><a href="k100132.html#sectlevel3id020002002">20.2.2 Die Länge der Datei</a>
+</ul>
+</ul>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel3id020002001"></a>
+<h3>20.2.1 <a name="ixa101397">Positionierung des Dateizeigers</a></h3>
+
+<p>
+Der Hauptunterschied zwischen dem sequenziellen und dem wahlfreien
+Zugriff auf eine Datei besteht darin, dass beim wahlfreien Zugriff
+mit einem <i>expliziten</i> 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 <a href="index_r.html#ixb101016"><font color=#000080><tt>RandomAccessFile</tt></font></a>
+stellt verschiedene Methoden zum Zugriff auf den Satzzeiger zur Verfügung:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public long getFilePointer()
+
+public void seek(long pos)
+
+public void skipBytes(int n)
+
+public long length()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/io/RandomAccessFile.html" onClick="this.href=getApiDoc('java.io.RandomAccessFile')"><font color="#660066" size=-1>java.io.RandomAccessFile</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa101398"><a href="index_g.html#ixb101055"><font color=#000080><tt>getFilePointer</tt></font></a></a>
+liefert die aktuelle Position des Satzzeigers; das erste Byte einer
+Datei steht dabei an Position 0. Da der Rückgabewert vom Typ
+<a href="index_l.html#ixb100245"><font color=#000080><tt>long</tt></font></a>
+ist, unterstützt Java den Zugriff auf Dateien, die größer
+als 2 GByte sind, sofern es das Betriebssystem zuläßt.
+
+<p>
+Das Positionieren des Satzzeigers erfolgt mit der Methode <a name="ixa101399"><a href="index_s.html#ixb101056"><font color=#000080><tt>seek</tt></font></a></a>
+an die durch <font color="#000077"><tt>pos</tt></font> angegebene
+Stelle. Anders als in C bezieht sich der Wert von <font color="#000077"><tt>pos</tt></font>
+dabei immer auf den Anfang der Datei. Das Positionieren relativ zur
+aktuellen Position kann mit der Methode <a name="ixa101400"><a href="index_s.html#ixb101057"><font color=#000080><tt>skipBytes</tt></font></a></a>
+erledigt werden. Die neue Position wird dabei aus der aktuellen Position
+plus dem Inhalt des Parameters <font color="#000077"><tt>n</tt></font>
+berechnet. Auch negative Werte für <font color="#000077"><tt>n</tt></font>
+sind dabei erlaubt und bewirken eine Rückwärtsverschiebung
+des Satzzeigers.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+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.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id020002002"></a>
+<h3>20.2.2 Die Länge der Datei </h3>
+
+<p>
+Die Klasse <a href="index_r.html#ixb101016"><font color=#000080><tt>RandomAccessFile</tt></font></a>
+besitzt zwei Methoden zum Zugriff auf die Länge der Datei:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public long length()
+ throws IOException
+
+public void setLength(long length)
+ throws IOException
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/io/RandomAccessFile.html" onClick="this.href=getApiDoc('java.io.RandomAccessFile')"><font color="#660066" size=-1>java.io.RandomAccessFile</font></a></td>
+</tr>
+</table>
+
+<p>
+Mit <a name="ixa101401"><a href="index_l.html#ixb100275"><font color=#000080><tt>length</tt></font></a></a>
+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 <a name="ixa101402"><a href="index_s.html#ixb101058"><font color=#000080><tt>setLength</tt></font></a></a>
+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.
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
+Wesley, Version 5.0.1
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100130.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100131.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100133.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100136.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">© 1998, 2007 Guido Krüger & Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>
|
