3 шага по работе с I/O потоками:
Класс FileInputStream заворачиваем в BufferedInputStream. Затем выносится некоторое количество байтов в память за один раз, а уже потом считывается из этой памяти (буфера).
Чтение потоков со знаками
FileReader - читать
FileWriter - писать
FileInputStream - InputStreamReader - BufferReader
Запись в поток со знаками
FileOutputStream - OutputStreamWriter - BufferedWriter
Файлы API
Класс Files - упрощает операции с файлами (создание, удаление, копирование и т.д.)
Класс Path - программно выдаёт путь к файлу в системе.
Сериализация
Перевод объекта в строку байтов, передача этой строки на другую JVM с последующей реконструкцией в исходный объект, называют сериализацией.
Чтобы сериализировать класс, нужно в него имплиментировать специальный интерфейс java.io.Serializable - это пример маркер-интерфейса (в нём нет методов, которые необходимо было бы имплиментировать).
Ключевое слово Transient
Этим словом помечаем поля, которые не хотим сериализовывать.
- открыть поток (файл, url и т.д.)
- считать либо записать данные в этом потоке
- закрыть поток
Класс FileInputStream заворачиваем в BufferedInputStream. Затем выносится некоторое количество байтов в память за один раз, а уже потом считывается из этой памяти (буфера).
Чтение потоков со знаками
FileReader - читать
FileWriter - писать
FileInputStream - InputStreamReader - BufferReader
Запись в поток со знаками
FileOutputStream - OutputStreamWriter - BufferedWriter
Файлы API
Класс Files - упрощает операции с файлами (создание, удаление, копирование и т.д.)
Класс Path - программно выдаёт путь к файлу в системе.
Сериализация
Перевод объекта в строку байтов, передача этой строки на другую JVM с последующей реконструкцией в исходный объект, называют сериализацией.
Чтобы сериализировать класс, нужно в него имплиментировать специальный интерфейс java.io.Serializable - это пример маркер-интерфейса (в нём нет методов, которые необходимо было бы имплиментировать).
Ключевое слово Transient
Этим словом помечаем поля, которые не хотим сериализовывать.
Стоит упомянуть try-catch-with-resources! JVM автоматически закрывает всё, что имплементирует AutoClosable и Closable, когда выходит из блока try-catch.
ОтветитьУдалитьhttps://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html