logo

Клас Java FileDescriptor

Клас java.io.FileDescriptor представляє відкритий файл або дескриптор сокета в базовій операційній системі. Він діє як непрозоре посилання на певний файловий пристрій або сокет. Цей клас в основному використовується як міст між потоками вводу-виводу Java та ресурсами рідної файлової системи.

двійкове дерево в java

Оголошення класу

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

Загальні об’єкти FileDescriptor

  • FileDescriptor.in: Представляє стандартний ввід (клавіатура)
  • FileDescriptor.out: Представляє стандартний вихід (консоль)
  • FileDescriptor.err: Представляє стандартну помилку (вихід помилки)

Конструктор

  • FileDescriptor(): Створює недійсний дескриптор файлу, який не підключено до жодного файлу чи сокета.

методи

Нижче наведено два основних методи:

  • 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().

Синтаксис:

основи селену

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

Вихід:

Введіть щось: А

Ви ввели: А

Створіть вікторину