Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КПЗ_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
319.98 Кб
Скачать

30. Буферізовані файлові байтові потоки введення/виведення

По умолчанию потоки не оснащаются буфером

 Операции чтения/записи обращаются к операционной системе для чтения одного байта с диска или записи одного байта на диск

• Буферизация: чтение/запись блоками данных

Сокращается количество низкоуровневых файловых операций

Время записи/чтения уменьшается в сравнении с не буферизированными операциями (производительность выше)

Чтение и запись выполняется не побайтово, а через буфер

 Размер буфера устанавливается по умолчанию

 Если записи фиксированного размера, то размер буфера можно изменить

• Оболочки-буферы

 BufferedInputStream

 BufferedOutputStream

• При создании объекта буферизированного ввода/вывода в конструктор

передается

 объект входного/выходного потока, размер буфера по умолчанию

DEFAULT_BUFFER_SIZE = 8192

•BufferedInputStream(InputStream in)

•BufferedOutputStream(OutputStream out)

 объект входного/выходного потока, размер буфера

•BufferedInputStream(InputStream in, int size)

•BufferedOutputStream(OutputStream out, int size)

1) создать файловый поток: входной (для чтения) –

FileInputStreamили выходной (для записи) –

FileOutputStream

2) Поместить файловый поток в соответствующий буферизированный поток: входной (для чтения) – BufferedInputStreamили выходной (для записи) –

BufferedOutputStream

3) Выполнить необходимые операции чтения/записи

4) Закрыть буферизированный поток. Закрытие

буферизированного потока автоматически приводит к закрытию лежащего в его основе потока

31. Символьні файлові потоки введення/виведення

Чтение символов из файла

1) Открыть файл и связать его с входным потоком, используя FileReader Например, FileReader fr = new FileReader(«file.txt");

2) Обработать исключительные ситуации, связанные с открытием файла

3) Прочитать из файла используя метод read()- перегруженный метод

4) Закрыть входной поток с помощью метода close()

Запись в файл

1) Открыть файл и связать его с выходным потоком

FileWriter fw = new FileWriter("out.tx");

2) Обработать исключительные ситуации, связанные с ошибками

открытия файла

3) Выполнить запись в файл методом write (кроме записи символов

и массива символов метод перегружен для записи строки)

Например,

public void write(String str) throws IOException

4) Закрыть выходной поток с помощью метода close()

• По умолчанию при открытии уже существующего файла, его содержимое перезаписывается

• Режим дозаписи в файл устанавливается при его открытии

• Режим записи устанавливается в конструкторе

public FileWriter(String fileName, boolean append)

• Второй параметр: добавлять ли в конец файла, если он существует?

32. Буферізовані файлові символьні потоки введення/виведення

1) создать файловый поток: входной (для чтения) – FileReader или выходной (для записи) – FileWriter

2) Поместить файловый поток в соответствующий буферизированный поток: входной (для чтения) – BufferedReaderили выходной (для записи) – BufferedWrite

3) Выполнить необходимые операции чтения/записи

4) Закрыть буферизированный поток. Закрытие буферизированного потока автоматически приводит к закрытию лежащего в его основе потока

readLine: читает строку в String

•read: читает по одному символу char

•close: закрывает BufferedReader поток