Java FileDescriptor-klasse
De klasse java.io.FileDescriptor vertegenwoordigt een open bestand of socket-handle in het onderliggende besturingssysteem. Het fungeert als een ondoorzichtige verwijzing naar een bepaald bestandsapparaat of socket. Deze klasse wordt voornamelijk gebruikt als brug tussen Java I/O-streams en de systeemeigen bestandssysteembronnen.
Java
public final class FileDescriptor extends Object
- Het belangrijkste praktische gebruik van een bestandsdescriptor is het maken van een FileInputStream of FileOutputStream om deze te bevatten.
- Toepassingen mogen geen eigen bestandsdescriptors maken.
Algemene FileDescriptor-objecten
- FileDescriptor.in: Vertegenwoordigt de standaardinvoer (toetsenbord)
- FileDescriptor.out: Vertegenwoordigt de standaarduitvoer (console)
- FileDescriptor.err: Vertegenwoordigt de standaardfout (foutuitvoer)
Constructeur
- Bestandsbeschrijving(): Creëert een ongeldige bestandsdescriptor die niet is verbonden met een bestand of socket.
Methoden
Er zijn twee hoofdmethoden, zoals hieronder vermeld:
- ongeldige synchronisatie(): Dwingt alle systeembuffers om te synchroniseren met het onderliggende apparaat, zodat gegevens fysiek worden geschreven.
- java.io.File.valid(): Controleert of het bestandsdescriptorobject geldig is (dat wil zeggen verbonden met een geopend bestand of socket).
Methode Voorbeeld
1. sync() Methode
Syntaxis:
openbare ongeldige synchronisatie()
Opbrengst : leegte
Uitzondering: SyncFailedException - Dit is een uitzondering als er geen garantie is voor synchronisatie van buffers met het apparaat.
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 ()); } }
Uitvoer
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. valid() Methode
Syntaxis:
publieke boolean geldig()
Opbrengst: true als het FileDescriptor-object geldig is, anders 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 (); } }
Uitvoer
Data synchronized successfully.
Voorbeeld met standaard FileDescriptors
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 (); } }
Uitgang:
Quiz makenVul iets in: A
Je hebt ingevoerd: A