Como converter InputStream em um array byte[] em Java? Todas as formas
Olá a todos! Sou novo em Java e me deparei com o seguinte problema: preciso ler todos os dados de um InputStream (por exemplo, de um arquivo ou de uma resposta HTTP) e obtê-los na forma de um array byte[]. Mas não sei como fazer isso corretamente.
\n\nAqui está o que tentei:
\n\nInputStream input = new FileInputStream("data.bin");\nbyte[] data = ??? // Como obter o array de bytes?\n\n\nO problema é que o InputStream não me permite saber o tamanho dos dados antecipadamente. O método available() retorna não o tamanho completo, mas apenas o que já está disponível para leitura sem bloqueio. Tentei ler em um loop, mas o código fica confuso e frequentemente quebra.
Li sobre ByteArrayOutputStream, mas não entendo como usá-lo corretamente. Também ouvi falar sobre readAllBytes(), mas