При определении того, является ли файловый объект файлом или каталогом, вы должны сначала определить, существует ли содержимое, инкапсулированное файловым объектом, и судить по нему, также можно указать метод кодирования при построении потока операций с текстовым файлом;
Файл f;
е.существует();
f.isDirectory();
е.исФайл();
f.deleteOnExit();//Удалить указанный файл при выходе из программы;
f.createNewFile();//Создать файл в указанном месте, если файл уже существует, вернуть false;
f.getParent();//Этот метод возвращает родительский каталог в абсолютном пути. Если получен относительный путь, возвращается значение Null. Если в относительном пути есть каталог верхнего уровня, возвращается каталог;
File.separator //Разделитель файловой системы, разные системы имеют разные разделители;
FilenameFilter:// используется для фильтрации имен файлов;
FilenameFilter.accept(File dir,String name); //Проверяем, включен ли указанный файл в список файлов;
имя: имя файла;
public boolean Accept (File dir, String name) { return name.endsWith(".txt" };
//Буфер повышает эффективность операций с потоком, прежде чем создавать буфер, должен быть объект потока;
//Технология буферизации фактически закрывает массив внутри объекта и записывает его один раз после сохранения;
Конструктор: конструктор, который передает поток в буфер;
Примечание. Пока буфер используется, его необходимо обновлять;
Буферизовано... буф;
буф.флеш();
buf.close();//Закрыть буфер — закрыть объект потока в буфере;
БуферизованныйReader bufr;
bufr.readLine();//Возвращает строку, но не содержит символа новой строки;
// Независимо от того, читаете ли вы одну строку или несколько символов, на самом деле они читаются на жестком диске один за другим, поэтому последний используемый метод — чтение по одному с помощью метода read.
/*
* ByteArrayInputStream: во время построения необходимо получить источник данных, а источником данных является массив байтов;
* ByteArrayOutputStream: при построении нет необходимости определять место назначения данных, поскольку внутри определяется массив байтов переменной длины, который является местом назначения данных;
* Оба потоковых объекта работают с массивами, не используют системные ресурсы и не требуют закрытия;
*/
//Данные во внутреннем буфере будут обновлены перед закрытием ресурса потока;
//lush(); После обновления (сохранения данных в буфере в файл) поток продолжает использоваться;
// Сериализация: статические члены не могут быть сериализованы;
// Если вы не хотите, чтобы нестатические члены сериализовались, добавьте модификатор: transient int,,,
System.in:InputStream
System.out: Выходной поток