Im making a simple TCP/IP Socket app
Whats the different between doing this:
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
byte[] buffer = new byte[100];
in.readFully(buffer);
versus doing this:
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
byte[] buffer = new byte[100];
in.read(buffer);
I had a look at the documentation, they have the same exact description. readFully()
and read()
So can I assume its the same thing?
The Javadoc for DataInput.readFully(byte[] b)
states:
Reads some bytes from an input stream and stores them into the buffer array
b
. The number of bytes read is equal to the length ofb
.
The Javadoc for DataInputStream.read(byte[] b)
states:
Reads some number of bytes from the contained 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.
Basically, readFully()
will read exactly b.length
bytes, whereas read()
will read up to b.length
, maybe less, whatever is available from the input stream.