Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прога 2012.docx
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
1.45 Mб
Скачать
  1. Потоки символов: свойства, связь потока с файлом, чтение, запись, закрытие:

Потоки символов определены в двух иерархиях классов. Наверху этой иерархии 2 абстрактных класса: Reader и Writer. Они обрабатывают потоки символов Unicode.Считывается не байт, а символ.

Класс Reader - абстрактный класс, который определяет модель поточного символьного ввода.

Методы:

Int read() – возвращает целочисленное представление следующего доступного символа из вызывающего входного потока. Если поток пуст( нету символов для чтения) возвращает -1.

Int read (char A[])- читает до А.length символов в массиве А и возвращает фактическое число символов, которые успешно прочитались. Когда встречается признак конца файла возвращает -1.

Класс Writer- абстрактный класс, который определяет модель поточного символьного вывода.

Методы:

Void close()- закрывает выходной поток

Void write (int c)- записывает оин символ в выходной поток вызывающего обьекта

Void write( char A) - записывает заполненный массив символов в вызывающий выходной поток

Void write (String str)-записывает строку в вызывающий выходной поток

Класс FileReader–создает Reader-обьект , который можно использовать для чтения содержимого файла. Обычно используемые конструкторы :

FileReader (String filePath)-выбрасывает исключение типа FileNotFoundException, filePath- полное имя файла

FileReader (File fileObj)- выбрасывает исключение типа FileNotFoundException, fileObj – обьект класса File, который описывает файл.

Классы BufferedReader, BufferedWriter, PrintWriter

Примеры обьявления:

FileReader inputStream = null;

FileWriter outputStream = null;

inputStream = new FileReader ( "input.txt" );

outputStream = new FileWriter ( "output.txt" );

  1. Потоки строк: свойства, связь потока с файлом, чтение, запись, закрытие:

Текстовые потоки в java это буферизированные потоки символов с именами BufferdReader, PrintWriter. Содержат кроме обычных методов операции readLine (ввод строки) и println (вывод строки). Текстовые потоки используются для работы с данными, которые состоят из символов.

Связь потока с файлами:

Объявление вводного потока input типа BufferedReader:

Input= new BufferedReader(newFileReader(“..txt ”));

Конструктор класса BufferedReader требует в качестве параметра символьный файловый поток, который связан с файлом обычном образом.

Объявление выводного потока output типа PrintWriter

Output =newPrintWriter(“….txt”);

Обработка строк текстового файла, не представляющих числовые данные, обычно состоит из следующих действий:

-ввод строки из файла при помощи метода readLine

-разделение строки на слова

-обработка слов строки

Обработка числовых данных в свободном формате отличается от обработки текстовых строк только тем, что после разделения строки на слова слово преобразуется в число подходящим методом. Методы находятся в классах-оболочках стандартных типов. Например метод parseDouble(word) класса double. Возвращает double значение для строки word.

  1. Исключения при работе с потоками:

Исключения в языке java- это объект, который описывает исключительную ситуацию, произошедшую в некоторой части кода. Когда создается исключительная ситуация, создается обьект, представляющий это исключение, и «вбрасываются» в метод, вызвавший ошибку. В свою очередь, метод может выбрать, обрабатывать ли исключение самому или передать его куда то еще. В любом случае, в некоторой точке исключения «захватываются» и обрабатываются.

Обработка исключений в java управляется с помощью 5 ключевых слов - try, catch, throw, throws, finally.

Программные операторы, которые нужно контролировать относительно исключений, содержаться в блоке try. Если в блоке try происходит исключение, то говорят, что оно выброшено (thrown) этим блоком. Оператор catch перехватывает исключение и обрабатывает его.

Общая форма блока обработки исключений:

Try{//блок кода для контроля над ошибками

}

Catch(ExceptionType1 e){

//обработчикисключенийдля ExceptionType1

}

Catch(ExceptionType2 e){

//обработчикисключенийдля ExceptionType2

}

Finally{

//блок кода для обработки перед возвратом из Try блока

}

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

-поток пуст

-не открытый/закрытый поток и т.д.