DataInputStream.read() vs DataInputStream.readFully()

Im faisant un simple Socket TCP/IP application

Quoi la différence entre le faire:

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

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

rapport à cela:

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

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

J'ai eu un coup d'oeil à la documentation, ils ont exactement la même description. readFully() et read()
Donc, je peux assumer ses la même chose?

Comment voulez-vous gérer les EOF (sens quand il n'y a pas plus d'octets à lire sur le support)? Regardez les définitions des deux et pas seulement les descriptions. L'un renvoie une valeur et un lève une exception.
ah ok, je vois maintenant. Donc, fondamentalement, readFully() retourne lorsque le tampon est plein, indépendamment de si il n'y a plus d'octets restant à lire. Et read() retourne quand tous les octets ont été lus. - Il Correct?
Pas de. read() retourne lorsqu'au moins un octet a été lu; readFully() lorsque le tampon est plein.

OriginalL'auteur Krimson | 2014-09-17