Tutorials  /  JavaScript

Java RandomAccessFile Beispiel

Ccentron Redaktion · April 2024 ·3 Min. Lesezeit ·JavaScript, Tutorial

Java RandomAccessFile bietet die Möglichkeit, Daten in einer Datei zu lesen und zu schreiben. RandomAccessFile arbeitet mit der Datei als großes Array von Bytes, die im Dateisystem gespeichert sind, und einem Cursor, mit dem wir die Position des Dateizeigers bewegen können.

Java RandomAccessFile

Die RandomAccessFile-Klasse ist Teil von Java IO. Beim Erstellen der Instanz von RandomAccessFile in Java müssen wir den Modus angeben, um die Datei zu öffnen. Um beispielsweise die Datei im Nur-Lesen-Modus zu öffnen, müssen wir „r“ verwenden und für Lese-Schreib-Operationen müssen wir „rw“ verwenden. Mit dem Dateizeiger können wir Daten aus der Random-Access-Datei an jeder Position lesen oder schreiben. Um den aktuellen Dateizeiger zu erhalten, können Sie die Methode getFilePointer() aufrufen und um den Index des Dateizeigers festzulegen, können Sie die Methode seek(int i) aufrufen. Wenn wir Daten an einem Index schreiben, an dem bereits Daten vorhanden sind, wird es überschrieben.

Java RandomAccessFile Lesebeispiel

Wir können ein Bytearray aus einer Datei mit RandomAccessFile in Java lesen. Unten ist der Pseudocode, um eine Datei mit RandomAccessFile zu lesen.

Code
RandomAccessFile raf = new RandomAccessFile("file.txt", "r");
raf.seek(1);
byte[] bytes = new byte[5];
raf.read(bytes);
raf.close();
System.out.println(new String(bytes));

In der ersten Zeile erstellen wir eine RandomAccessFile-Instanz für die Datei im Nur-Lesen-Modus. Dann bewegen wir in der zweiten Zeile den Dateizeiger auf den Index 1. Wir haben ein Bytearray der Länge 5 erstellt, daher werden beim Aufrufen der Methode read(bytes) dann 5 Bytes von der Datei in das Bytearray gelesen. Schließlich schließen wir die RandomAccessFile-Ressource und drucken das Bytearray auf die Konsole.

Java RandomAccessFile Schreibbeispiel

Hier ist ein einfaches Beispiel, das zeigt, wie man Daten mit RandomAccessFile in Java in eine Datei schreibt.

Code
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
raf.seek(5);
raf.write("Data".getBytes());
raf.close();

Da RandomAccessFile die Datei als Bytearray behandelt, kann die Schreiboperation die Daten überschreiben sowie an eine Datei anhängen. Es hängt alles von der Position des Dateizeigers ab. Wenn der Zeiger über die Dateilänge hinaus verschoben und dann die Schreiboperation aufgerufen wird, dann werden Junk-Daten in der Datei geschrieben. Daher sollten Sie dies bei der Verwendung der Schreiboperation beachten.

RandomAccessFile Anhängebeispiel

Wir müssen nur sicherstellen, dass der Dateizeiger am Ende der Datei steht, um an eine Datei anzuhängen. Unten ist der Code, um mit RandomAccessFile an eine Datei anzuhängen.

Code
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
raf.seek(raf.length());
raf.write("Data".getBytes());
raf.close();
VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

Java RandomAccessFile Beispiel

Hier ist ein komplettes Java RandomAccessFile-Beispiel mit verschiedenen Lese- und Schreiboperationen.

Go
package com.journaldev.files;

import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileExample {

	public static void main(String[] args) {
		try {
			// file content is "ABCDEFGH"
			String filePath = "/Users/pankaj/Downloads/source.txt"; 
			
			System.out.println(new String(readCharsFromFile(filePath, 1, 5)));

			writeData(filePath, "Data", 5);
			//now file content is "ABCDEData"
			
			appendData(filePath, "pankaj");
			//now file content is "ABCDEDatapankaj"
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static void appendData(String filePath, String data) throws IOException {
		RandomAccessFile raFile = new RandomAccessFile(filePath, "rw");
		raFile.seek(raFile.length());
		System.out.println("current pointer = "+raFile.getFilePointer());
		raFile.write(data.getBytes());
		raFile.close();
		
	}

	private static void writeData(String filePath, String data, int seek) throws IOException {
		RandomAccessFile file = new RandomAccessFile(filePath, "rw");
		file.seek(seek);
		file.write(data.getBytes());
		file.close();
	}

	private static byte[] readCharsFromFile(String filePath, int seek, int chars) throws IOException {
		RandomAccessFile file = new RandomAccessFile(filePath, "r");
		file.seek(seek);
		byte[] bytes = new byte[chars];
		file.read(bytes);
		file.close();
		return bytes;
	}

}

Das ist alles für RandomAccessFile in Java.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren