Java FileDescriptor Class
Klassen java.io.FileDescriptor representerar ett öppet fil- eller sockethandtag i det underliggande operativsystemet. Det fungerar som en ogenomskinlig referens till en viss filenhet eller socket. Denna klass används huvudsakligen som en brygga mellan Java I/O-strömmar och de inbyggda filsystemresurserna.
Klassdeklaration
Java public final class FileDescriptor extends Object
- Den huvudsakliga praktiska användningen av en filbeskrivning är att skapa en FileInputStream eller FileOutputStream för att innehålla den.
- Applikationer bör inte skapa sina egna filbeskrivningar.
Vanliga FileDescriptor-objekt
- FileDescriptor.in: Representerar standardingången (tangentbord)
- FileDescriptor.out: Representerar standardutgången (konsol)
- FileDescriptor.err: Representerar standardfelet (felutgång)
Konstruktör
- FileDescriptor(): Skapar en ogiltig filbeskrivning som inte är ansluten till någon fil eller socket.
Metoder
Det finns två huvudmetoder som nämns nedan:
- void sync(): Tvingar alla systembuffertar att synkronisera med den underliggande enheten för att säkerställa att data skrivs fysiskt.
- java.io.File.valid(): Kontrollerar om filbeskrivningsobjektet är giltigt (dvs anslutet till en öppen fil eller socket).
Metodexempel
1. sync() Metod
Syntax:
public void sync()
Retur: ogiltig
Undantag: SyncFailedException - Detta undantag kastas om det inte finns någon garanti för synkronisering av buffertar med enheten.
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 ()); } }
Produktion
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. valid() Metod
Syntax:
Återvända: true om FileDescriptor-objektet är giltigt annars 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 (); } }
Produktion
Data synchronized successfully.
Exempel med Standard 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 (); } }
Produktion:
Skapa frågesportAnge något: A
Du skrev in: A