Опубликован: 15.11.2010 | Доступ: свободный | Студентов: 742 / 44 | Оценка: 4.00 / 5.00 | Длительность: 17:30:00
Специальности: Программист
Лекция 8:

Буферизированный (потоковый) ввод-вывод. Часть III

8.10. Приложение № 7. Классы и методы, используемые для файлового ввода-вывода на языке Java

КЛАСС PRINTWRITER
ОПРЕДЕЛЕНА В: java.io.*
НАЗНАЧЕНИЕ: Класс предназначен для создания файловых потоков, предназначенных для вывода текстовых файлов методами "print" и "println" ;
ОПИСАНИЕ:
КОНСТРУКТОР: PrintWriter;
МЕТОД: println;
МЕТОД: print;
МЕТОД: close;
МЕТОД: flush;
ПЕРЕНОСИМОСТЬ: Везде;

КОНСТРУКТОР: PrintWriter( new FileOutputStream( "Имя файла" ) ;
ОПРЕДЕЛЕНА В: Класс PrintWriter ;
СИНТАКСИС: new PrintWriter( new FileOutputStream( "Имя файла" )) ; где
  • FileOutputStream - конструктор класса File (смотри далее);
  • "Имя файла" - полное или краткое имя файла с расширением;
НАЗНАЧЕНИЕ: Создание пустого файла;
ОПИСАНИЕ: При использовании конструктора в таком виде создаётся пустой файл. Если существует файл с именем "Имя файла", то содержимое этого файла теряется. Если файл с именем "Имя файла" уже существует, то генерируется исключение: "FileNotFoundExeption", которое является разновидностью исключения класса IOEctption, и может быть перехвачено в catch-блоке данного исключения;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Объект класса: "PrintWriter" ;
ПЕРЕНОСИМОСТЬ: Везде;

КОНСТРУКТОР: PrintWriter( new FileOutputStream( "Имя файла" )) ;
ОПРЕДЕЛЕНА В: Класс PrintWriter ;
СИНТАКСИС: new PrintWriter( new FileOutputStream( "Имя файла", true) ) ; где
  • FileOutputStream - конструктор класса File (смотри далее);
  • "Имя файла" - полное или краткое имя файла с расширением;
  • true - константа типа "boolean" ;
НАЗНАЧЕНИЕ: Открытие файла для добавления текстовых данных;
ОПИСАНИЕ: При использовании конструктора в таком виде открывается текущий текстовый файл для добавления текста в его конец. Если файла с именем "Имя файла" не существует, то генерируется исключение: "FileNotFoundExeption", которое является разновидностью исключения класса IOEctption, и может быть перехвачено в catch-блоке данного исключения;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Объект класса: "PrintWriter" ;
ПЕРЕНОСИМОСТЬ: Везде;

КОНСТРУКТОР: PrintWriter( new FileOutputStream( "Имя файла" )) ;
ОПРЕДЕЛЕНА В: Класс PrintWriter ;
СИНТАКСИС: new PrintWriter( new FileOutputStream( "Имя файла", append)) ; где
  • FileOutputStream - конструктор класса File (смотри далее);
  • "Имя файла" - полное или краткое имя файла с расширением;
  • append - константа;
НАЗНАЧЕНИЕ: Открытие файла для добавления текстовых данных;
ОПИСАНИЕ: При использовании конструктора в таком виде открывается текущий текстовый файл для добавления текста в его конец. Если файла с именем "Имя файла" не существует, то создаётся новый файл;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Объект класса: "PrintWriter" ;
ПЕРЕНОСИМОСТЬ: Везде;

КОНСТРУКТОР: PrintWriter( new FileOutputStream( "Имя файла" )) ;
ОПРЕДЕЛЕНА В: Класс PrintWriter ;
СИНТАКСИС: new PrintWriter( new FileOutputStream( "Имя объекта типа файл" )) ; где FileOutputStream - конструктор класса File (смотри далее);
НАЗНАЧЕНИЕ: Создание потока из объекта File ;
ОПИСАНИЕ: При использовании конструктора в таком виде создаётся новый поток из объекта "File". При этом может генерироваться исключение: "FileNotFoundExeption", которое является разновидностью исключения класса IOEctption, и может быть перехвачено в catch-блоке данного исключения;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Объект класса: "PrintWriter" ;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД PRINTLN ;
ОПРЕДЕЛЕН В: Класс PrintWriter ;
СИНТАКСИС: "PrintWriterStream".println( "Элемент_1"{ + "Элемент_n"} ) ; где
  • "PrintWriterStream" - объект класса: "PrintWriter" ;
  • "Элемент_1" - "Элемент_n" - Заключённые в кавычки строки, переменные, константы (например, числа) или практически любой объект, определённый в языке Java;
НАЗНАЧЕНИЕ: Функция выводит один или несколько элементов в поток вывода, ассоциированного с классом "PrintWriter" ;
ОПИСАНИЕ: Вывод текстовой строки из текстовых (или преобразованных в текстовую форму) переменных, констант и литералов. Переменные разделяются знаками "+", в конце автоматически вставляется символ "EOL" ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция не возвращает значений;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД PRINT ;
ОПРЕДЕЛЕН В: Класс PrintWriter ;
СИНТАКСИС: "PrintWriterStream".print( "Элемент_1"{ + "Элемент_n"} ) ; где
  • "PrintWriterStream" - объект класса: "PrintWriter" ;
  • "Элемент_1" - "Элемент_n" - Заключённые в кавычки строки, переменные, константы (например, числа) или практически любой объект, определённый в языке Java;
НАЗНАЧЕНИЕ: Функция выводит один или несколько элементов в поток вывода, ассоциированного с классом "PrintWriter" ;
ОПИСАНИЕ: Вывод текста или преобразованных в текст объектов, констант и литералов. Переменные выводятся, начиная с текущей позиции курсора, разделяются знаками "+", в конце строка не завершается символом "EOL" (то есть новый вывод будет осуществляться с той же строки);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция не возвращает значений;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД CLOSE
ОПРЕДЕЛЕН В: Класс PrintWriter ;
СИНТАКСИС: "PrintWriterStream".close() ; где "PrintWriterStream" - объект класса: "PrintWriter" ;
НАЗНАЧЕНИЕ: Функция закрывает связь потока с файлом;
ОПИСАНИЕ: Функция закрывает файл, предварительно вызвав метод: flush(). Принудительное закрытие файлов обязательно по следующим двум причинам. Во-первых, если программа завершается ненормально, то она не сможет самостоятельно закрыть этот файл. В результате он остаётся открытым без связи с программой, что может его разрушить. Во-вторых, если программа записывает данные в файл, а впоследствии читает их из того же файла, то после окончания записи файл необходимо закрыть, а затем снова открыть для чтения;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция не возвращает значений;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД FLUSH
ОПРЕДЕЛЕН В: Класс PrintWriter ;
СИНТАКСИС: "PrintWriterStream".flush() ; где "PrintWriterStream" - объект класса: "PrintWriter" ;
НАЗНАЧЕНИЕ: Сбрасывает на диск данные из выходного потока;
ОПИСАНИЕ: Функция сбрасывает на диск данные из выходного потока "PrintWriterStream" в файл на блочном устройстве ввода-вывода. Это вызывает реальную физическую запись в файл любых данных, которые были буферизированы, но ещё фактически не переписаны в файл. Обычно метод flush вызывать не нужно;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция не возвращает значений;
ПЕРЕНОСИМОСТЬ: Везде;

КЛАСС BUFFEREDREADER
ОПРЕДЕЛЕНА В: java.io.*
НАЗНАЧЕНИЕ: Класс предназначен для создания файловых потоков, предназначенных для ввода текстовых файлов методами "readLine" и "read" ;
ОПИСАНИЕ:
КОНСТРУКТОР: BufferedReader ;
МЕТОД: readLine ;
МЕТОД: read ;
МЕТОД: close ;
ПЕРЕНОСИМОСТЬ: Везде;

КОНСТРУКТОР: BufferedReader( new FileReader( "Имя файла" ) ;
ОПРЕДЕЛЕНА В: Класс BufferedReader ;
СИНТАКСИС: new BufferedReader( new FileReader( "Имя файла" )) ; где
  • FileReader - конструктор класса File (смотри далее);
  • "Имя файла" - полное или краткое имя файла с расширением;
НАЗНАЧЕНИЕ: Открытие файла для чтения;
ОПИСАНИЕ: При использовании конструктора в таком виде открывается файл для чтения. Если файл с именем "Имя файла" не существует, то генерируется исключение: "FileNotFoundExeption", которое является разновидностью исключения класса IOEctption, и может быть перехвачено в catch-блоке данного исключения;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Объект класса: "BufferedReader" ;
ПЕРЕНОСИМОСТЬ: Везде;

КОНСТРУКТОР: BufferedReader( new FileReader( "Имя объекта типа файл" )) ;
ОПРЕДЕЛЕНА В: Класс BufferedReader ;
СИНТАКСИС: new BufferedReader( new FileReader( "Имя объекта типа файл" )) ; где FileReader - конструктор класса File (смотри далее);
НАЗНАЧЕНИЕ: Открытие файла для чтения;
ОПИСАНИЕ: При использовании конструктора в таком виде открывается файл для чтения. При этом может генерироваться исключение: "FileNotFoundExeption", которое является разновидностью исключения класса IOEctption, и может быть перехвачено в catch-блоке данного исключения;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Объект класса: "BufferedReader" ;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД READLINE ;
ОПРЕДЕЛЕНА В: Класс BufferedReader ;
СИНТАКСИС: "BufferedReaderStream".readLine() ; где "BufferedReaderStream" - объект класса: "BufferedReader" ;
НАЗНАЧЕНИЕ: Функция читает строку данных из входного потока, ассоциированного с классом "BufferedReader", и возвращает эту строку;
ОПИСАНИЕ: Функция читает строку данных из входного потока и возвращает эту строку. Если чтение выходит за пределы конца файла, функция возвращает значение null. Обратите внимание, что в конце файла не генерируется исключение класса EOFException. Достижение конца файла сигнализируется возвратом значения null. Метод может генерировать исключение: IOException ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Прочитанную из буфера строку текста типа String, или null при достижении конца файла;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД READ ;
ОПРЕДЕЛЕНА В: Класс BufferedReader ;
СИНТАКСИС: "BufferedReaderStream".read() ; где "BufferedReaderStream" - объект класса: "BufferedReader" ;
НАЗНАЧЕНИЕ: Функция читает один символ из потока ввода, ассоциированного с классом "BufferedReader", и возвращает этот символ как int-значение;
ОПИСАНИЕ: Функция читает один символ из входного потока и возвращает это символ как int-значение. Если чтение выходит за пределы конца файла, то функция возвращает значение -1. Заметьте, что и это значение имеет тип int. Для получения значения типа char необходимо выполнить операцию приведения типа для возвращаемого значения. Достижение конца файла сигнализируется возвратом значения -1, в то время как все "настоящие" символы" возвращают положительные целые значения. Метод может генерировать исключение: IOException ;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Прочитанный из входного потока символ, или значение "-1" при достижении конца файла;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД CLOSE
ОПРЕДЕЛЕН В: Класс BufferedReader ;
СИНТАКСИС: "BufferedReaderStream".close() ; где "BufferedReaderStream" - объект класса: "BufferedReader" ;
НАЗНАЧЕНИЕ: Функция закрывает связь входного потока "BufferedReaderStream" с файлом.
ОПИСАНИЕ: Функция закрывает файл;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция не возвращает значений;
ПЕРЕНОСИМОСТЬ: Везде;