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/k100134.html | 195 +++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100134.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100134.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100134.html b/Master/Reference Architectures and Patterns/hjp5/html/k100134.html new file mode 100644 index 0000000..c18fdef --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100134.html @@ -0,0 +1,195 @@ + + + +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.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, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3