Sobes.tech
Middle

Τι γνωρίζετε για την κλάση RandomAccessFile;

sobes.tech AI

Απάντηση από AI

Το RandomAccessFile παρέχει τη δυνατότητα ανάγνωσης και εγγραφής δεδομένων οπουδήποτε στο αρχείο. Σε αντίθεση με τις ροές, δεν αποτελεί υποκλάση του InputStream ή OutputStream.

Βασικά χαρακτηριστικά:

  • Τοποθέτηση: Επιτρέπει την μετακίνηση μέσα στο αρχείο, ορίζοντας τη τρέχουσα θέση μέσω της μεθόδου seek().
  • Τρόπος πρόσβασης: Ανοίγει με συγκεκριμένο τρόπο πρόσβασης ("r", "rw", "rws", "rwd").
  • Ανάγνωση και εγγραφή: Υποστηρίζει την ανάγνωση και εγγραφή πρωταρχικών τύπων, συμβολοσειρών και πινάκων byte.
  • Μήκος αρχείου: Επιτρέπει την απόκτηση του τρέχοντος μήκους του αρχείου (length()) και τον ορισμό του (setLength()).

Παράδειγμα ανοίγματος αρχείου για ανάγνωση και εγγραφή:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.txt", "rw");
// ... περαιτέρω εργασία με το αρχείο
file.close();

Παράδειγμα μετακίνησης μέσα στο αρχείο και ανάγνωσης:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.bin", "r");
file.seek(100); // Μετακίνηση στο byte 100
byte b = file.readByte(); // Ανάγνωση ενός byte
file.close();

Παράδειγμα εγγραφής στο αρχείο:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_output.txt", "rw");
file.writeBytes("Hello, world!"); // Εγγραφή συμβολοσειράς
file.close();

Τρόποι πρόσβασης:

Τρόπος Περιγραφή
"r" Άνοιγμα για ανάγνωση.
"rw" Άνοιγμα για ανάγνωση και εγγραφή.
"rws" Άνοιγμα για ανάγνωση και εγγραφή με συγχρονισμένη ενημέρωση του περιεχομένου και των μεταδεδομένων του αρχείου σε επίπεδο λειτουργικού συστήματος.
"rwd" Άνοιγμα για ανάγνωση και εγγραφή με συγχρονισμένη ενημέρωση του περιεχομένου του αρχείου σε επίπεδο λειτουργικού συστήματος (τα μεταδεδομένα μπορεί να καθυστερούν).