java - inputstream est converti en tableau d'octets et le tableau est hors limites
巴扎黑
巴扎黑 2017-05-17 10:03:02
0
2
763

public static byte[] readInputStream(InputStream inStream) lève une exception {

    try {
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = inStream.read(buffer)) != -1) {
            outStream.write(buffer, 0, len);
        }
        inStream.close();
        return outStream.toByteArray();
    }catch (Exception e){
        e.printStackTrace();
        throw new Exception(e);
    }

}

C'est ainsi que les choses se font en ligne. Il est possible de franchir la ligne en écrivant à mort

.

Je ne sais pas s'il existe une autre façon de gérer cela

巴扎黑
巴扎黑

répondre à tous(2)
阿神

La meilleure façon est d'utiliser IOUtils.toByteArray(inputStream) d'Apache commons IO, une solution sur une seule ligne.

阿神
        int count = 0;
        while (count == 0) {
            count = inStream.available();
        }
        byte[] b = new byte[count];
        inStream.read(b);
        return b;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal