Java FileDescriptor klasa
Klasa java.io.FileDescriptor predstavlja otvorenu datoteku ili ručku utičnice u osnovnom operativnom sustavu. Djeluje kao neprozirna referenca na određeni datotečni uređaj ili utičnicu. Ova se klasa uglavnom koristi kao most između Java I/O tokova i izvornih resursa datotečnog sustava.
Klasna deklaracija
Java public final class FileDescriptor extends Object
- Glavna praktična upotreba deskriptora datoteke je stvaranje FileInputStream ili FileOutputStream koji će ga sadržavati.
- Aplikacije ne bi trebale stvarati vlastite deskriptore datoteka.
Uobičajeni FileDescriptor objekti
- FileDescriptor.in: Predstavlja standardni unos (tipkovnica)
- FileDescriptor.out: Predstavlja standardni izlaz (konzola)
- FileDescriptor.err: Predstavlja standardnu pogrešku (izlaz pogreške)
Konstruktor
- FileDescriptor(): Stvara nevažeći deskriptor datoteke koji nije povezan ni s jednom datotekom ili utičnicom.
Metode
Postoje dvije glavne metode kao što je navedeno u nastavku:
- void sync(): Prisiljava sve međuspremnike sustava na sinkronizaciju s osnovnim uređajem osiguravajući da su podaci fizički zapisani.
- java.io.File.valid(): Provjerava je li objekt deskriptora datoteke valjan (tj. povezan s otvorenom datotekom ili utičnicom).
Primjer metode
1. metoda sync().
Sintaksa:
javna void sinkronizacija()
Povratak: poništiti
Iznimka: SyncFailedException - Ovo je izuzetak koji se javlja ako ne postoji jamstvo sinkronizacije međuspremnika s uređajem.
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 ()); } }
Izlaz
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. valid() metoda
Sintaksa:
javni Booleov valid()
Povratak: true ako je FileDescriptor objekt valjan else 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 (); } }
Izlaz
Data synchronized successfully.
Primjer sa standardnim deskriptorima datoteka
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 (); } }
Izlaz:
Napravi kvizUnesite nešto: A
Unijeli ste: A