If "in" is an InputStream
Yes. you are right.
javadoc says
"public int read(byte[] b)
throws IOException
Reads some number of bytes from the input stream and stores them
into the buffer array b. The number of bytes actually read is returned
as an integer. This method blocks until input data is available, end of
file is detected, or an exception is thrown.
If b is null, a NullPointerException is thrown. If the length of b
is zero, then no bytes are read and 0 is returned; otherwise, there is
an attempt to read at least one byte. If no byte is available because
the stream is at end of file, the value -1 is returned; otherwise, at
least one byte is read and stored into b.
The first byte read is stored into element b[0], the next one into
b[1], and so on. The number of bytes read is, at most, equal to the
length of b. Let k be the number of bytes actually read; these bytes
will be stored in elements b[0] through b[k-1], leaving elements b[k]
through b[b.length-1] unaffected.
If the first byte cannot be read for any reason other than end of
file, then an IOException is thrown. In particular, an IOException is
thrown if the input stream has been closed.
The read(b) method for class InputStream has the same effect as:
read(b, 0, b.length)
"
my question is
what happens in the next iteration ?
does buffer first cleared off and then filled up afresh
OR
the buffer is overwriiten with the new incoming bytes ?
javadoc does not answer this question.