logo

Třída Java FileDescriptor

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í

Java
public 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.

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. metoda valid()

Syntax:

public boolean valid()

Návrat: true, pokud je objekt FileDescriptor platný, jinak false

c# obsahuje řetězec
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. 

Příklad se standardními popisovači souborů

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:

Zadejte něco: A

Zadali jste: A

Vytvořit kvíz