Государственный


Чтение и запись файлов. FileInputStream и FileOutputStream



бет5/25
Дата05.04.2024
өлшемі4.07 Mb.
#497748
1   2   3   4   5   6   7   8   9   ...   25
Java. Потоки ввода-вывода. Работа с файлами. Кравчук А.С., Кравчук А.И., Кремень Е.В

Чтение и запись файлов. FileInputStream и FileOutputStream

Запись файлов и класс FileOutputStream


Класс FileOutputStream предназначен для записи потоков необработанных байтов, таких, например, как данные изображения. Он является производным от класса OutputStream, поэтому наследует всю его функциональность.
С помощью конструктора класса FileOutputStream задается файл, в который производится запись. Класс поддерживает несколько конструкторов, в том числе:
FileOutputStream(String filePath) FileOutputStream(File fileObj) FileOutputStream(String filePath, boolean append) FileOutputStream(File fileObj, boolean append)
В данных конструкторах файл задается либо через строковый путь, либо через объект File. Путь к файлу filePath может быть как абсолютным, так и относительным. Если файл не существует, то он будет создан. Если файл существует, то он будет перезаписан. Если не удалось создать или открыть файл для записи, то генерируется исключение FileNotFoundException. Второй параметр - append задает способ записи: если он равен true, то данные дозаписываются в конец файла, а при false - файл полностью перезаписывается.
Пример.




Замечания:

  • При выполнении программы в среде OnlineGDB даже если разработчик не создал предварительно файл notes.txt самостоятельно, то он будет создан автоматически в новой закладке (содержимое файла можно просмотреть):



  • При выполнении программы в среде JDoodle файл тоже будет создан, но явно просмотреть его содержимое нельзя.

  • Исключения IOException может возникнуть если в записываемый файл не сможет поместиться записываемая информация, либо файл не будет создан.

Для создания объекта FileOutputStream используется конструктор, принимающий в качестве параметра путь к файлу для записи. Если такого файла нет, то он автоматически создается при записи. Так как здесь записываем строку, то ее надо сначала перевести в массив байтов. И с помощью метода write строка записывается в файл.


Для автоматического закрытия файла и освобождения ресурса объект
FileOutputStream создается с помощью конструкции try…catch.
При этом необязательно записывать весь массив байтов. Используя перегрузку метода write(), можно записать и одиночный байт:

fos.write(buffer[0]); // запись первого байта





'H'.
Замечание.
В данном случае в качестве результата в файл будет записан символ


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   25




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет