logo

Java FileDescriptor клас

Класът java.io.FileDescriptor представлява отворен файл или манипулатор на сокет в основната операционна система. Той действа като непрозрачна препратка към конкретно файлово устройство или сокет. Този клас се използва главно като мост между Java I/O потоци и собствените ресурси на файловата система.

мишка и видове мишки

Декларация на класа

Java
public final class FileDescriptor extends Object 
  • Основната практическа употреба на файлов дескриптор е да се създаде FileInputStream или FileOutputStream, който да го съдържа.
  • Приложенията не трябва да създават свои собствени файлови дескриптори.

Общи обекти на FileDescriptor

  • FileDescriptor.in: Представлява стандартния вход (клавиатура)
  • FileDescriptor.out: Представлява стандартния изход (конзола)
  • FileDescriptor.err: Представлява стандартната грешка (изход за грешка)

Конструктор

  • Създава невалиден файлов дескриптор, който не е свързан с никакъв файл или сокет.

Методи

Има два основни метода, както е споменато по-долу:

  • void sync(): Принуждава всички системни буфери да се синхронизират с основното устройство, като гарантира, че данните се записват физически.
  • java.io.File.valid(): Проверява дали обектът на файловия дескриптор е валиден (т.е. свързан към отворен файл или сокет).

Пример за метод

1. sync() Метод

Синтаксис:



public void sync()

Връщане: невалиден

Изключение: SyncFailedException - Това изключение се хвърля, ако няма гаранция за синхронизиране на буферите с устройството.

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

Изход
Is FileDescriptor valid? true Is FileDescriptor valid after close? false 

2. valid() метод

Синтаксис:

добавете към масив в java

публичен булев valid()

Връщане: true, ако обектът FileDescriptor е валиден 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();  } } 

Изход
Data synchronized successfully. 

Пример със стандартни файлови дескриптори

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

Изход:

Въведете нещо: А

Вие въведохте: А

Създаване на тест