DataInputStream.read () vs DataInputStream.readFully ()

Estoy haciendo una sencilla aplicación TCP / IP Socket

¿Cuál es la diferencia entre hacer esto?

DataInputStream in = new DataInputStream(clientSocket.getInputStream());

byte[] buffer = new byte[100];
in.readFully(buffer);

versus hacer esto:

DataInputStream in = new DataInputStream(clientSocket.getInputStream());

byte[] buffer = new byte[100];
in.read(buffer);

Eché un vistazo a la documentación, tienen la misma descripción exacta.readFully() yread() Entonces, ¿puedo asumir que es lo mismo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta