Maison  >  Questions et réponses  >  le corps du texte

java - inputstream est converti en tableau d'octets et le tableau est hors limites

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

巴扎黑巴扎黑2712 Il y a quelques jours725

répondre à tous(2)je répondrai

  • 阿神

    阿神2017-05-17 10:05:02

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

    répondre
    0
  • 阿神

    阿神2017-05-17 10:05:02

            int count = 0;
            while (count == 0) {
                count = inStream.available();
            }
            byte[] b = new byte[count];
            inStream.read(b);
            return b;

    répondre
    0
  • Annulerrépondre