logo

Classe Java FileDescriptor

La classe java.io.FileDescriptor representa un fitxer obert o identificador de sòcol al sistema operatiu subjacent. Actua com una referència opaca a un dispositiu de fitxer o sòcol concret. Aquesta classe s'utilitza principalment com a pont entre els fluxos d'E/S de Java i els recursos del sistema de fitxers natius.

sonu nigam

Declaració de classe

Java
public final class FileDescriptor extends Object 
  • L'ús pràctic principal d'un descriptor de fitxers és crear un FileInputStream o FileOutputStream per contenir-lo.
  • Les aplicacions no haurien de crear els seus propis descriptors de fitxer.

Objectes descriptor de fitxers comuns

  • FileDescriptor.in: Representa l'entrada estàndard (teclat)
  • FileDescriptor.out: Representa la sortida estàndard (consola)
  • FileDescriptor.err: Representa l'error estàndard (sortida d'error)

Constructor

  • FileDescriptor(): Crea un descriptor de fitxer no vàlid que no està connectat a cap fitxer o sòcol.

Mètodes

Hi ha dos mètodes principals, com s'esmenta a continuació:

  • void sync(): Força tots els buffers del sistema a sincronitzar-se amb el dispositiu subjacent, assegurant-se que les dades s'escriuen físicament.
  • java.io.File.valid(): Comprova si l'objecte descriptor de fitxer és vàlid (és a dir, connectat a un fitxer o sòcol obert).

Mètode Exemple

1. Mètode sync().

Sintaxi:



sincronització de public void()

Tornada: buit

Excepció: SyncFailedException - Aquesta és una excepció que es llança si no hi ha cap garantia de sincronització dels buffers amb el dispositiu.

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

Sortida
Is FileDescriptor valid? true Is FileDescriptor valid after close? false 

2. Mètode vàlid().

Sintaxi:

booleà públic vàlid()

Tornada: true si l'objecte FileDescriptor és vàlid, sinó fals

organització i arquitectura informàtica
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();  } } 

Sortida
Data synchronized successfully. 

Exemple amb FileDescriptors estàndard

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

Sortida:

Introduïu alguna cosa: A

Heu introduït: A

Crea un qüestionari