Многие структуры данных (списки, коллекции и т. Д.) Действуют как контейнеры - они содержат набор объектов.Но не поток;если список - это ведро, то поток - это шланг.Вы можете извлекать данные из потока или помещать данные в поток, но обычно только один раз и только в в одном направлении (конечно, есть исключения).Например, данные TCP по сети - это поток;Вы можете отправлять (или получать) порции данных, но только в соединении с другим компьютером, и обычно только один раз - вы не можете перематывать Интернет.
Потоки также могут манипулировать данными, проходящими через них;потоки сжатия, потоки шифрования и т. д. Но опять же - основная метафора здесь - поток данных.Файл также обычно доступен (на некотором уровне) как поток;Вы можете получить доступ к блокам последовательных данных.Конечно, большинство файловых систем также предоставляют произвольный доступ, поэтому потоки предлагают такие вещи, как Seek, Position, Length и т. Д., Но не все реализации поддерживают такие.Не имеет смысла искать несколько потоков или получать длину открытого сокета.