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.
niečo rýchle
Vyhlásenie o triede
Javapublic 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.
Javaimport 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
Javaimport 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
Javaimport 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
zalamovanie slov cssZadali ste: A