242ea16c

Вот мы и подошли вплотную к важнейшему



Вот мы и подошли вплотную к важнейшему этапу - созданию элементов ввода/вывода. Для этого язык Java предлагает целую гамму классов потоков ввода/вывода. Именно их мы и рассмотрим на этом занятии.

Для языков Си++ и Java характерно использование потоков ввода/вывода вместо файлов, как это делалось ранее. Поток ввода/вывода - это некоторый условный канал, по которому отсылаются и получаются данные. При этом совершенно не важно, что стоит за конкретным потоком: файл, блок памяти, экран и т. д. С точки зрения программиста, поток представляет собой ленточный транспортер, на который можно последовательно помещать куски данных, а лента доставит их по назначению. Остальные детали реализации не важны. Такая концепция помогает унифицировать методы работы со всеми устройствами ввода/вывода, сводя все к методам открытия потока, его закрытия, чтения данных из потока и запись данных в него. Конечно же, существуют исключения, но в целом разработчики языка Java старались соблюдать условия унифицированного интерфейса управления потоком. Во всю эту концепцию не вписываются лишь два класса: File и FileDescriptor. Первый осуществляет системные операции, как-то: создание, удаление, переименование файлов, и часто служит промежуточным звеном при использовании потоков. А вот второй, FileDescriptor, - это совсем отдельный случай. Он хранит три дескриптора стандартных файловых потоков (ввода, вывода и сообщений об ошибке) и содержит средства, позволяющие проверить правильность любого дескриптора файла.



Содержание раздела