Рубрики

Java.io.FileDescriptor в Java

java.io.FileDescriptor работает для открытия файла с определенным именем. Если в этом файле присутствует какой-либо контент, он сначала удалит весь этот контент и поместит «Начало процесса» в качестве первой строки. Экземпляры класса дескриптора файла служат непрозрачным дескриптором базовой машинно-зависимой структуры, представляющей открытый файл, открытый сокет или другой источник или приемник байтов.

  • Основное практическое использование файлового дескриптора — создание FileInputStream или FileOutputStream для его хранения.
  • Приложения не должны создавать свои собственные файловые дескрипторы.

поля

  • err: дескриптор стандартного потока ошибок.
  • in: дескриптор стандартного потока ввода.
  • out: дескриптор стандартного потока вывода.

Декларация:

public final class FileDescriptor
   extends Object

Конструкторы:

  • FileDescriptor (): создает объект FileDescriptor

Методы:

  • sync (): java.io.File.sync () синхронизирует все буферы с базовым устройством. Когда все измененные данные FileDescriptor были записаны на базовое устройство, метод возвращается.
    Синтаксис:
    public void sync()
    Parameters :
    -----------
    Return : 
    void
    Exception : 
    -> SyncFailedException : This is exception is thrown if there is no guarantee of    
                             synchronization of buffers with the device. 
    

    // Java-программа, объясняющая работу метода sync ()

      

    import java.io.*;

      

    public class NewClass

    {

        public static void main(String[] args) throws IOException

        {

            // Инициализация FileDescriptor

            FileDescriptor geek_descriptor = null;

            FileOutputStream geek_out = null;

      

            // ЗДЕСЬ Я пишу "Гики" в моем файле

            byte[] buffer = {71,69,69,75,83};

      

            try{

                geek_out = new FileOutputStream("FILE.txt");

      

                // Этот метод getFD () вызывается перед закрытием потока вывода

                geek_descriptor = geek_out.getFD();

      

                // записывает байт в поток вывода файла

                geek_out.write(buffer);

      

                // ИСПОЛЬЗОВАНИЕ sync (): для синхронизации данных с исходным файлом

                geek_descriptor.sync();

                System.out.print("\nUse of Sync Successful ");

      

            }

            catch(Exception excpt)

            {

                // если в случае ошибки ввода-вывода

                excpt.printStackTrace();

            }

            finally

            {

                // освобождает системные ресурсы

                if(geek_out!=null)

                    geek_out.close();

            }

        }

    }

    Замечания :
    Вы не можете видеть изменения, внесенные этим кодом в файл «FILE.txt», упомянутый в коде, поскольку в Online IDE такого файла нет. Итак, вам нужно скопировать код в ваш SYSTEM-компилятор и наблюдать за изменениями в вашем файле
    Каким бы ни был контент, присутствующий в файле, он синхронизирует ваш файл с устройством и перезаписывает данные. Теперь содержимое файла «FILE.txt» будет

    GEEKS

    Даже если такого файла не существует, он создаст этот файл самостоятельно, синхронизирует файл и запишет содержимое, которое вы упомянули.
    Выход :

    Use of Sync Successful :) 
  • valid (): java.io.File.valid () проверяет, является ли объект FileDescriptor допустимым или нет.
    Синтаксис:
    public boolean valid()
    Parameters :
    -----------
    Return : 
    true : if the FileDescriptor object is valid else, false
    Exception : 
    -----------
    

    // Java-программа, объясняющая работу метода valid ()

      

    import java.io.*;

      

    public class NewClass

    {

        public static void main(String[] args) throws IOException

        {

            // Инициализация FileDescriptor

            FileDescriptor geek_descriptor = null;

            FileInputStream geek_in = null;

      

            try

            {

                geek_in = new FileInputStream("FILE.txt");

      

                // получить дескриптор файла

                geek_descriptor = geek_in.getFD();

      

                boolean check = false;

      

                // Использование valid (): проверка правильности FileDescriptor

                check = geek_descriptor.valid();

      

                System.out.print("FileDescriptor is valid : "+check);

      

            }

            catch(Exception excpt)

            {

                // если в случае ошибки ввода-вывода

                excpt.printStackTrace();

            }

            finally

            {

                // освобождает системные ресурсы

                if(geek_in!=null)

                    geek_in.close();

            }

        }

    }

    Замечания :
    Вы не можете видеть изменения, внесенные этим кодом в файл «FILE.txt», упомянутый в коде, поскольку в Online IDE такого файла нет. Итак, вам нужно скопировать код в ваш SYSTEM-компилятор и наблюдать за изменениями в вашем файле. Этот метод проверяет правильность нашего FileDescriptor.
    Поскольку. наш FileDescriptor в коде был действительным, так что, true возвращается

    Выход :

    FileDescriptor is valid : true
  • Резюме :

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

    Эта статья предоставлена Мохит Гупта 🙂 . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

    Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

    Рекомендуемые посты:

    Java.io.FileDescriptor в Java

    0.00 (0%) 0 votes