Třída java.io.FileDescriptor představuje otevřený soubor nebo úchyt soketu v základním operačním systému. Funguje jako neprůhledný odkaz na konkrétní souborové zařízení nebo soket. Tato třída se používá hlavně jako most mezi I/O proudy Java a prostředky nativního systému souborů.
zkuste chytit javu
Třídní prohlášení
Javapublic final class FileDescriptor extends Object
- Hlavním praktickým využitím deskriptoru souboru je vytvoření FileInputStream nebo FileOutputStream, který jej obsahuje.
- Aplikace by neměly vytvářet vlastní deskriptory souborů.
Běžné objekty FileDescriptor
- FileDescriptor.in: Představuje standardní vstup (klávesnice)
- FileDescriptor.out: Představuje standardní výstup (konzole)
- FileDescriptor.err: Představuje standardní chybu (chybový výstup)
Konstruktér
- FileDescriptor(): Vytvoří neplatný deskriptor souboru, který není připojen k žádnému souboru nebo soketu.
Metody
Existují dva hlavní způsoby, jak je uvedeno níže:
- void sync(): Vynutí synchronizaci všech vyrovnávacích pamětí systému se základním zařízením a zajistí, že data budou fyzicky zapsána.
- java.io.File.valid(): Zkontroluje, zda je objekt deskriptoru souboru platný (tj. připojen k otevřenému souboru nebo soketu).
Příklad metody
1. Metoda sync().
Syntax:
public void sync()
Návrat: prázdnota
Výjimka: SyncFailedException - Tato výjimka je vyvolána, pokud není zaručena synchronizace vyrovnávacích pamětí se zařízení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. metoda valid()
Syntax:
public boolean valid()
Návrat: true, pokud je objekt FileDescriptor platný, jinak false
c# obsahuje řetězecJava
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.
Příklad se standardními popisovači souborů
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:
Vytvořit kvízZadejte něco: A
Zadali jste: A