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ų.
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
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:
Sukurti viktorinąĮveskite ką nors: A
Įvedėte: A