logo

Clasa Java FileDescriptor

Clasa java.io.FileDescriptor reprezintă un fișier deschis sau un mâner de socket în sistemul de operare de bază. Acționează ca o referință opacă la un anumit dispozitiv de fișier sau soclu. Această clasă este folosită în principal ca o punte între fluxurile I/O Java și resursele sistemului de fișiere nativ.

punct java

Declarație de clasă

Java
public final class FileDescriptor extends Object 
  • Principala utilizare practică a unui descriptor de fișier este de a crea un FileInputStream sau FileOutputStream pentru a-l conține.
  • Aplicațiile nu ar trebui să-și creeze propriile descriptori de fișiere.

Obiecte comune FileDescriptor

  • FileDescriptor.in: Reprezintă intrarea standard (tastatură)
  • FileDescriptor.out: Reprezintă ieșirea standard (consola)
  • FileDescriptor.err: Reprezintă eroarea standard (ieșire de eroare)

Constructor

  • FileDescriptor(): Creează un descriptor de fișier nevalid care nu este conectat la niciun fișier sau soclu.

Metode

Există două metode principale, după cum este menționat mai jos:

  • void sync(): Forțează toate tampoanele de sistem să se sincronizeze cu dispozitivul de bază, asigurându-se că datele sunt scrise fizic.
  • java.io.File.valid(): Verifică dacă obiectul descriptor de fișier este valid (adică conectat la un fișier sau soclu deschis).

Exemplu de metodă

1. metoda sync().

Sintaxă:



sincronizare public void()

Retur: gol

Excepție: SyncFailedException - Această excepție este aruncată dacă nu există nicio garanție a sincronizării bufferelor cu dispozitivul.

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());  } } 

Ieșire
Is FileDescriptor valid? true Is FileDescriptor valid after close? false 

2. valid() Metoda

Sintaxă:

public boolean valid()

Reveni: true dacă obiectul FileDescriptor este valid, altfel 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();  } } 

Ieșire
Data synchronized successfully. 

Exemplu cu FileDescriptors standard

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();  } } 

Ieșire:

Introdu ceva: A

ce luni sunt q3

Ai intrat: A

Creați un test