Classe Java FileDescriptor
La classe java.io.FileDescriptor représente un fichier ouvert ou un handle de socket dans le système d'exploitation sous-jacent. Il agit comme une référence opaque à un périphérique de fichier ou à un socket particulier. Cette classe est principalement utilisée comme pont entre les flux d’E/S Java et les ressources natives du système de fichiers.
Déclaration de classe
Java public final class FileDescriptor extends Object
- La principale utilisation pratique d'un descripteur de fichier est de créer un FileInputStream ou un FileOutputStream pour le contenir.
- Les applications ne doivent pas créer leurs propres descripteurs de fichiers.
Objets FileDescriptor courants
- FileDescriptor.in : Représente l'entrée standard (clavier)
- FileDescriptor.out : Représente la sortie standard (console)
- FileDescriptor.err : Représente l'erreur standard (sortie d'erreur)
Constructeur
- Descripteur de fichier() : Crée un descripteur de fichier non valide qui n'est connecté à aucun fichier ou socket.
Méthodes
Il existe deux méthodes principales mentionnées ci-dessous :
- annuler la synchronisation() : Force tous les tampons système à se synchroniser avec le périphérique sous-jacent, garantissant que les données sont physiquement écrites.
- java.io.File.valid() : Vérifie si l'objet descripteur de fichier est valide (c'est-à-dire connecté à un fichier ouvert ou à un socket).
Exemple de méthode
1. Méthode sync()
Syntaxe:
synchronisation vide publique()
Retour : vide
Exception : SyncFailedException - Cette exception est levée s'il n'y a aucune garantie de synchronisation des tampons avec le périphérique.
Java import java.io.* ; public class FileDescriptorValidity { public static void main ( String [] args ) throws Exception { FileOutputStream fos = new FileOutputStream ( 'example.txt' ); FileDescriptor fd = fos . getFD (); System . out . println ( 'Is FileDescriptor valid? ' + fd . valid ()); fos . close (); System . out . println ( 'Is FileDescriptor valid after close? ' + fd . valid ()); } }
Sortir
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. Valid()Méthodes
Syntaxe:
public booléen valide()
Retour: vrai si l'objet FileDescriptor est valide sinon faux
Java import java.io.* ; public class FileDescriptorSync { public static void main ( String [] args ) throws Exception { FileOutputStream fos = new FileOutputStream ( 'syncDemo.txt' ); FileDescriptor fd = fos . getFD (); fos . write ( 'GeeksForGeeks FileDescriptor Example' . getBytes ()); fd . sync (); // Ensures data is written to disk System . out . println ( 'Data synchronized successfully.' ); fos . close (); } }
Sortir
Data synchronized successfully.
Exemple avec des descripteurs de fichiers standard
Java import java.io.* ; public class StandardFileDescriptors { public static void main ( String [] args ) throws Exception { FileInputStream fis = new FileInputStream ( FileDescriptor . in ); FileOutputStream fos = new FileOutputStream ( FileDescriptor . out ); FileOutputStream fes = new FileOutputStream ( FileDescriptor . err ); fos . write ( 'Enter something: ' . getBytes ()); int data = fis . read (); fes . write (( 'You entered: ' + ( char ) data + 'n' ). getBytes ()); fis . close (); fos . close (); fes . close (); } }
Sortir:
Créer un quizEntrez quelque chose : A
Vous avez saisi : A