Java FileDescriptor klasse
java.io.FileDescriptor-klassen repræsenterer et åbent fil- eller socket-håndtag i det underliggende operativsystem. Det fungerer som en uigennemsigtig reference til en bestemt filenhed eller socket. Denne klasse bruges hovedsageligt som en bro mellem Java I/O-streams og de native filsystemressourcer.
Klasseerklæring
Java public final class FileDescriptor extends Object
- Den vigtigste praktiske anvendelse af en filbeskrivelse er at oprette en FileInputStream eller FileOutputStream til at indeholde den.
- Programmer bør ikke oprette deres egne filbeskrivelser.
Almindelige FileDescriptor-objekter
- FileDescriptor.in: Repræsenterer standardinput (tastatur)
- FileDescriptor.out: Repræsenterer standardoutput (konsol)
- FileDescriptor.err: Repræsenterer standardfejlen (fejloutput)
Konstruktør
- FileDescriptor(): Opretter en ugyldig filbeskrivelse, der ikke er forbundet til nogen fil eller socket.
Metoder
Der er to hovedmetoder som nævnt nedenfor:
- ugyldig synkronisering(): Tvinger alle systembuffere til at synkronisere med den underliggende enhed, hvilket sikrer, at data er fysisk skrevet.
- java.io.File.valid(): Kontrollerer, om filbeskrivelsesobjektet er gyldigt (dvs. forbundet til en åben fil eller socket).
Metodeeksempel
1. sync() metode
Syntaks:
public void sync()
Retur: ugyldig
Undtagelse: SyncFailedException - Dette er en undtagelse, hvis der ikke er nogen garanti for synkronisering af buffere med enheden.
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() Metode
Syntaks:
offentlig boolesk gyldig()
Retur: true, hvis FileDescriptor-objektet er gyldigt ellers falsk
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.
Eksempel 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:
Opret QuizIndtast noget: A
Du indtastede: A