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" |
Άνοιγμα για ανάγνωση και εγγραφή με συγχρονισμένη ενημέρωση του περιεχομένου του αρχείου σε επίπεδο λειτουργικού συστήματος (τα μεταδεδομένα μπορεί να καθυστερούν). |