logo

Java FileDescriptor klasė

Klasė java.io.FileDescriptor reiškia atvirą failo arba lizdo rankenėlę pagrindinėje operacinėje sistemoje. Tai veikia kaip nepermatoma nuoroda į tam tikrą failo įrenginį arba lizdą. Ši klasė daugiausia naudojama kaip tiltas tarp Java I/O srautų ir vietinių failų sistemos išteklių.

kietais viršeliais vs minkštais viršeliais

Klasės deklaracija

Java
public final class FileDescriptor extends Object 
  • Pagrindinis praktinis failo deskriptoriaus panaudojimas yra sukurti FileInputStream arba FileOutputStream, kuriame jis būtų.
  • Programos neturėtų kurti savo failų deskriptorių.

Įprasti FileDescriptor objektai

  • FileDescriptor.in: Nurodo standartinę įvestį (klaviatūrą)
  • FileDescriptor.out: Nurodo standartinę išvestį (konsolę)
  • FileDescriptor.err: Nurodo standartinę klaidą (klaidos išvestis)

Konstruktorius

  • FileDescriptor(): Sukuria netinkamą failo aprašą, kuris nėra prijungtas prie jokio failo ar lizdo.

Metodai

Yra du pagrindiniai metodai, kaip nurodyta toliau:

  • void sync (): Priverčia visus sistemos buferius sinchronizuoti su pagrindiniu įrenginiu, užtikrinant, kad duomenys būtų įrašyti fiziškai.
  • java.io.File.valid(): Patikrina, ar failo deskriptoriaus objektas yra tinkamas (t. y. prijungtas prie atidaryto failo arba lizdo).

Metodo pavyzdys

1. sync() metodas

Sintaksė:



viešasis galis sinchronizavimas ()

Grąžinti: tuščias

Išimtis: SyncFailedException – Tai yra išimtis, jei nėra garantijos, kad buferiai bus sinchronizuojami su įrenginiu.

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

Išvestis
Is FileDescriptor valid? true Is FileDescriptor valid after close? false 

2. valid() Metodas

Sintaksė:

vieša loginė vertė ()

Grąžinti: tiesa, jei FileDescriptor objektas yra galiojantis, kitaip klaidingas

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

Išvestis
Data synchronized successfully. 

Pavyzdys su standartiniais failų deskriptoriais

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

Išvestis:

Įveskite ką nors: A

Įvedėte: A

Sukurti viktoriną