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
Javapublic 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.
Javaimport 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 kodasJava
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
Javaimport 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