Java InputStream problème de lecture

J'ai une classe Java, où je suis en train de lire des données dans un InputStream

    byte[] b = null;
    try {
        b = new byte[in.available()];
        in.read(b);
    } catch (IOException e) {
        e.printStackTrace();
    }

Il fonctionne parfaitement quand je lance mon application à partir de l'IDE (Eclipse).

Mais lorsque j'exporte mon projet et il est emballé dans un BOCAL, la commande de lecture ne lit pas toutes les données. Comment pourrais-je résoudre ce problème?

Ce problème se produit principalement lorsque le InputStream est un Fichier (~10 ko).

Merci!

Il semblait donc que le système d'exploitation que vous exécutez eclipse retourné la taille totale d'un fichier lors de l'() a été appelé, mais ce n'est pas arrivé sur votre machine de test. Donc, ne comptez pas sur le nombre retourné par() comme le dit la java doc.
Classique de détournement de available(). Il y a un avertissement dans la Javadoc particulier de l'utiliser de cette façon.

OriginalL'auteur Michael | 2011-05-28