Spec-Zone .ru
спецификации, руководства, описания, API
|
Поток ввода-вывода представляет входной источник или выходное место назначения. Поток может представить много различных видов источников и мест назначения, включая дисковые файлы, устройства, другие программы, и матрицы элементов памяти.
Потоки поддерживают много различных видов данных, включая простые байты, примитивные типы данных, локализованные символы, и объекты. Некоторые потоки просто передают данные; другие управляют и преобразовывают данные полезными способами.
Независимо от того, как они работают внутренне, все потоки представляют ту же самую простую модель программам, которые используют их: поток является последовательностью данных. Программа использует входной поток, чтобы считать данные из источника, один элемент за один раз:
Чтение информации в программу.
Программа использует поток вывода, чтобы записать данные месту назначения, одному элементу во время:
Запись информации из программы.
В этом уроке мы будем видеть потоки, которые могут обработать все виды данных от примитивных значений до усовершенствованных объектов.
Источник данных и адресат данных, изображенный выше, могут быть чем-либо, что содержит, генерирует, или использует данные. Очевидно, это включает дисковые файлы, но источник или место назначения могут также быть другой программой, периферийным устройством, сетевым сокетом, или массивом.
В следующем разделе мы будем использовать самый основной вид потоков, потоков байтов, чтобы демонстрировать общие операции Потокового ввода-вывода. Для демонстрационного ввода мы будем использовать файл в качестве примера xanadu.txt
, который содержит следующий стих:
In Xanadu did Kubla Khan A stately pleasure-dome decree: Where Alph, the sacred river, ran Through caverns measureless to man Down to a sunless sea.