I'm reading on Java I/O streams and I'm confused on the correct definition associated with them.
- Some say that a stream is a sort of conveyor belt in which data are transmitted...
- other say that a stream is a flow or a sequence of a data...
- other say that a stream is a connection to an input or an output source...
So what's the correct definition?
From: Java The Complete Reference
I would say a Stream is like all of these, but not exactly any of these.
I would say its an ordered sequence of 8-bit bytes.
In my view point stream is actually a conveyor belt as you mention in the first point.Actually there are two types of stream,input and output.An input stream is used to read the data from the input device like keywords and write that data to the files and output stream is used to read data from the disks,files etc and write that data to the ouput device like console,monitor etc. In simple way,it is the bridge that helps to transport things from one point to another.
A stream is a concept, but it's not that strict, that just only one description would be correct.
From: http://download.oracle.com/javase/tutorial/essential/io/streams.html
Also a stream is either an input stream or output stream. If it is an input stream, in Java it will adhere to the
InputStream
interface, the latter to theOutputstream
.(Side note: In crypto, there's e.g. a difference between stream and block ciphers, where a stream cipher is something that does not know (in a very general sense) anything about the future, while a block cipher knows its (maximum) size in advance and the sizes of all coming blocks.)
Java performs I/O throw streams. A stream is an abstraction that either produces or consumes information. A stream is linked to a physical device by the java I/O stream. Streams are a cleaned way to deal with input or output without having every part of code understand. Java defines two types of stream: byte and character
Just think it this way: Streams are objects that you can ask for pieces of data or send pieces of data to.