There is a clever class called FilterInputStream which can be used to add value to a raw InputStream. You can define your own filters but important ones provided are:
-
BufferedInputStream -- establishs an intermediate buffer to service stream
-
DataInputStream -- allows one to address stream in terms of higher level constructs -- namely read a line, read a long integer etc.
-
LineNumberInputStream -- adds line numbers to a stream
-
PushbackInputStream -- allows one to "unread" a character and put it back on the input stream
|
These streams can be constructed from each other or InputStream to give added functionality. If "is" is an InputStream, then it can be converted to a buffered input stream with methods from datainputstream:
|
DataInputStream data = new DataInputStream(new BufferedInputSream(is));
|