Java FileDescriptor-Klasse
Die Klasse java.io.FileDescriptor stellt eine offene Datei oder ein Socket-Handle im zugrunde liegenden Betriebssystem dar. Es fungiert als undurchsichtiger Verweis auf ein bestimmtes Dateigerät oder einen bestimmten Socket. Diese Klasse wird hauptsächlich als Brücke zwischen Java-I/O-Streams und den nativen Dateisystemressourcen verwendet.
Klassenerklärung
Java public final class FileDescriptor extends Object
- Der praktische Hauptnutzen eines Dateideskriptors besteht darin, einen FileInputStream oder FileOutputStream zu erstellen, der ihn enthält.
- Anwendungen sollten keine eigenen Dateideskriptoren erstellen.
Allgemeine FileDescriptor-Objekte
- FileDescriptor.in: Stellt die Standardeingabe (Tastatur) dar.
- FileDescriptor.out: Stellt die Standardausgabe (Konsole) dar.
- FileDescriptor.err: Stellt den Standardfehler dar (Fehlerausgabe)
Konstrukteur
- FileDescriptor(): Erstellt einen ungültigen Dateideskriptor, der mit keiner Datei oder keinem Socket verbunden ist.
Methoden
Es gibt zwei Hauptmethoden, wie unten erwähnt:
- void sync(): Erzwingt die Synchronisierung aller Systempuffer mit dem zugrunde liegenden Gerät, um sicherzustellen, dass Daten physisch geschrieben werden.
- java.io.File.valid(): Überprüft, ob das Dateideskriptorobjekt gültig ist (d. h. mit einer geöffneten Datei oder einem Socket verbunden ist).
Methodenbeispiel
1. sync()-Methode
Syntax:
public void sync()
Zurückkehren : Leere
Ausnahme: SyncFailedException - Diese Ausnahme wird ausgelöst, wenn keine Garantie für die Synchronisierung der Puffer mit dem Gerät besteht.
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 ()); } }
Ausgabe
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. valid()-Methode
Syntax:
öffentlicher boolescher Wert valid()
Zurückkehren: true, wenn das FileDescriptor-Objekt gültig ist, andernfalls false
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 (); } }
Ausgabe
Data synchronized successfully.
Beispiel mit Standard-FileDeskriptoren
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 (); } }
Ausgabe:
Quiz erstellenGeben Sie etwas ein: A
Sie haben eingegeben: A