Trieda Java FileDescriptor
Trieda java.io.FileDescriptor predstavuje otvorený súbor alebo rukoväť soketu v základnom operačnom systéme. Funguje ako nepriehľadný odkaz na konkrétne súborové zariadenie alebo soket. Táto trieda sa používa hlavne ako most medzi vstupno-výstupnými tokmi Java a prostriedkami natívneho systému súborov.
Vyhlásenie o triede
Java public final class FileDescriptor extends Object
- Hlavným praktickým využitím deskriptora súboru je vytvorenie súboru FileInputStream alebo FileOutputStream, ktorý ho obsahuje.
- Aplikácie by si nemali vytvárať vlastné deskriptory súborov.
Bežné objekty FileDescriptor Objects
- FileDescriptor.in: Predstavuje štandardný vstup (klávesnica)
- FileDescriptor.out: Predstavuje štandardný výstup (konzola)
- FileDescriptor.err: Predstavuje štandardnú chybu (chybový výstup)
Konštruktér
- FileDescriptor(): Vytvorí neplatný deskriptor súboru, ktorý nie je pripojený k žiadnemu súboru alebo soketu.
Metódy
Existujú dva hlavné spôsoby, ako je uvedené nižšie:
- void sync(): Vynúti synchronizáciu všetkých vyrovnávacích pamätí systému so základným zariadením, čím sa zabezpečí fyzický zápis údajov.
- java.io.File.valid(): Skontroluje, či je objekt deskriptora súboru platný (t. j. pripojený k otvorenému súboru alebo soketu).
Príklad metódy
1. Metóda sync().
Syntax:
public void sync()
Návrat : neplatné
Výnimka: SyncFailedException - Táto výnimka sa vyvolá, ak neexistuje záruka synchronizácie vyrovnávacích pamätí so zariadením.
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 ()); } }
Výstup
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. valid() Metóda
Syntax:
public boolean valid()
Návrat: true, ak je objekt FileDescriptor platný, inak je 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 (); } }
Výstup
Data synchronized successfully.
Príklad so štandardnými popisovačmi súborov
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 (); } }
výstup:
Vytvoriť kvízZadajte niečo: A
Zadali ste: A