Reading and writing with streams
A stream is a sequence of bytes that can be read from and written to. Although files can be processed rather like arrays, with random access provided by knowing the position of a byte within the file, it can be useful to process files as a stream in which the bytes can be accessed in sequential order.
Streams can also be used to process terminal input and output and networking resources such as sockets and ports that do not provide random access and cannot seek (that is, move) to a position. You can write code to process some arbitrary bytes without knowing or caring where it comes from. Your code simply reads or writes to a stream, and another piece of code handles where the bytes are actually stored.
Understanding abstract and concrete streams
There is an abstract
class named Stream
that represents any type of stream. Remember that an abstract
class cannot be instantiated using new
; they can only be inherited.
There are many concrete...