Определение потока - PullRequest
15 голосов
/ 13 июня 2011

Я читаю о потоках ввода-вывода Java, и меня смущает правильное определение, связанное с ними.

  • Некоторые говорят, что поток - это своего рода конвейерная лента, в которой данныепереданный ...
  • другой говорит, что поток является потоком или последовательностью данных ...
  • другой говорит, что поток является соединением с входным или выходным источником ...

Так какое же правильное определение?

Ответы [ 6 ]

17 голосов
/ 13 июня 2011

Поток - это понятие, но оно не настолько строго, что только одно описание будет правильным.

Поток ввода / вывода представляет источник ввода или назначение вывода. Поток может представлять множество различных типов источников и назначений, включая дисковые файлы, устройства, другие программы и массивы памяти. Потоки поддерживают множество различных типов данных, включая простые байты, примитивные типы данных, локализованные символы и объекты. Некоторые потоки просто передают данные; другие манипулируют данными и трансформируют их полезными способами.

Независимо от того, как они работают внутри, все потоки представляют одну и ту же простую модель программам , которые их используют: поток - это последовательность данных.

От: http://download.oracle.com/javase/tutorial/essential/io/streams.html

Также поток является либо входным потоком, либо выходным потоком. Если это входной поток, в Java он будет придерживаться интерфейса InputStream, последний - Outputstream.

(Примечание: в криптографии, например, есть разница между потоковым и блочным шифрами, где потоковый шифр - это то, что ничего не знает (в очень общем смысле) о будущем, тогда как блочный шифр заранее знает свой (максимальный) размер и размеры всех входящих блоков.)

1 голос
/ 27 сентября 2014

Java-программы выполняют ввод-вывод через потоки.Поток - это абстракция, которая либо производит, либо потребляет информацию.Поток связан с физическим устройством системой ввода-вывода Java.Все потоки ведут себя одинаково, даже если фактические физические устройства, с которыми они связаны, различаются.Таким образом, одни и те же классы и методы ввода / вывода могут применяться к любому типу устройств.Это означает, что поток ввода может абстрагировать много разных видов ввода: из файла на диске, клавиатуры или сетевого сокета.Аналогично, выходной поток может относиться к консоли, файлу диска или сетевому соединению.Потоки - это чистый способ справиться с вводом / выводом, когда каждая часть вашего кода не понимает разницу между клавиатурой и сетью, например.Java реализует потоки в иерархиях классов, определенных в пакете java.io.

От: Java The Complete Reference

0 голосов
/ 04 января 2017

Просто подумайте так: потоки - это объекты, которые вы можете запрашивать для фрагментов данных или отправлять фрагменты данных.

0 голосов
/ 27 октября 2016

На мой взгляд, поток на самом деле является конвейерной лентой, как вы упомянули в первом пункте. На самом деле существует два типа потока: вход и выход. Входной поток используется для чтения данных с устройства ввода, таких как ключевые слова и записиэти данные в файлы и выходной поток используются для чтения данных с дисков, файлов и т. д. и записи этих данных на выходное устройство, например консоль, монитор и т. д. Проще говоря, это мост, который помогает переносить вещи из одной точкидругой.

0 голосов
/ 12 апреля 2013

Java выполняет потоки ввода / вывода. Поток - это абстракция, которая либо производит, либо потребляет информацию. Поток связан с физическим устройством потоком ввода-вывода Java. Потоки - это чистый способ справиться с вводом или выводом без понимания каждой части кода. Java определяет два типа потока: байт и символ

0 голосов
/ 13 июня 2011

Я бы сказал, что поток похож на все это, но не совсем на них.

Я бы сказал, что это упорядоченная последовательность 8-битных байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...