Sobes.tech
Middle

Que savez-vous de la classe RandomAccessFile?

sobes.tech IA

Réponse de l'IA

RandomAccessFile offre la possibilité de lire et écrire des données n'importe où dans le fichier. Contrairement aux flux, il n'est pas une sous-classe de InputStream ou OutputStream.

Caractéristiques principales:

  • Positionnement: Permet de se déplacer dans le fichier, en définissant la position actuelle avec la méthode seek().
  • Mode d'ouverture: S'ouvre avec un mode d'accès déterminé ("r", "rw", "rws", "rwd").
  • Lecture et écriture: Supporte la lecture et l'écriture de types primitifs, chaînes et tableaux d'octets.
  • Longueur du fichier: Permet d'obtenir la longueur actuelle du fichier (length()) et de la définir (setLength()).

Exemple d'ouverture de fichier en lecture et écriture:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.txt", "rw");
// ... travail supplémentaire avec le fichier
file.close();

Exemple de déplacement dans le fichier et de lecture:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_file.bin", "r");
file.seek(100); // Déplacement à la 100ème byte
byte b = file.readByte(); // Lecture d'un byte
file.close();

Exemple d'écriture dans le fichier:

// RandomAccessFile
RandomAccessFile file = new RandomAccessFile("my_output.txt", "rw");
file.writeBytes("Hello, world!"); // Écriture d'une chaîne
file.close();

Modes d'accès:

Mode Description
"r" Ouverture en lecture.
"rw" Ouverture en lecture et écriture.
"rws" Ouverture en lecture et écriture avec mise à jour synchrone du contenu et des métadonnées du fichier au niveau du système d'exploitation.
"rwd" Ouverture en lecture et écriture avec mise à jour synchrone du contenu du fichier au niveau du système d'exploitation (les métadonnées peuvent être différées).