Java FileDescriptor Class
Klase java.io.FileDescriptor ir atvērta faila vai ligzdas rokturi pamatā esošajā operētājsistēmā. Tas darbojas kā necaurredzama atsauce uz noteiktu faila ierīci vai ligzdu. Šī klase galvenokārt tiek izmantota kā tilts starp Java I/O straumēm un vietējās failu sistēmas resursiem.
Klases deklarācija
Java public final class FileDescriptor extends Object
- Galvenais faila deskriptora praktiskais pielietojums ir izveidot FileInputStream vai FileOutputStream, lai to saturētu.
- Lietojumprogrammām nevajadzētu izveidot savus failu deskriptorus.
Kopējie FileDescriptor objekti
- FileDescriptor.in: Apzīmē standarta ievadi (tastatūru)
- FileDescriptor.out: Apzīmē standarta izvadi (konsole)
- FileDescriptor.err: Apzīmē standarta kļūdu (kļūdas izvade)
Konstruktors
- FileDescriptor(): Izveido nederīgu faila deskriptoru, kas nav savienots ar nevienu failu vai ligzdu.
Metodes
Ir divas galvenās metodes, kā minēts tālāk:
- Void sync (): Piespiež visus sistēmas buferus sinhronizēt ar pamata ierīci, nodrošinot, ka dati tiek fiziski ierakstīti.
- java.io.File.valid(): Pārbauda, vai faila deskriptora objekts ir derīgs (t.i., savienots ar atvērtu failu vai ligzdu).
Metodes piemērs
1. sync() metode
Sintakse:
public Void sync ()
Atgriešanās: nederīgs
Izņēmums: SyncFailedException — Tas ir izņēmums, ja nav garantijas par buferu sinhronizāciju ar ierīci.
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 ()); } }
Izvade
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. derīgs() metode
Sintakse:
publiska Būla vērtība derīga()
Atgriezties: patiess, ja objekts FileDescriptor ir derīgs, pretējā gadījumā nepatiess
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 (); } }
Izvade
Data synchronized successfully.
Piemērs ar standarta failu aprakstiem
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 (); } }
Izvade:
Izveidojiet viktorīnuIevadiet kaut ko: A
Jūs ievadījāt: A