AByteArrayOutputStream
は any から読み取ることができInputStream
、最後に a を生成しbyte[]
ます。
ただし、 a を使用すると、ByteArrayInputStream
より簡単になります。
int n = in.available();
byte[] bytes = new byte[n];
in.read(bytes, 0, n);
String s = new String(bytes, StandardCharsets.UTF_8); // Or any encoding.
の場合ByteArrayInputStream
available()
、合計バイト数が得られます。
補遺 2021-11-16
Java 9 以降、より短いreadAllBytesを使用できます。
byte[] bytes = in.readAllBytes();
コメントへの回答: ByteArrayOutputStream の使用
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[8192];
for (;;) {
int nread = in.read(buf, 0, buf.length);
if (nread <= 0) {
break;
}
baos.write(buf, 0, nread);
}
in.close();
baos.close();
byte[] bytes = baos.toByteArray();
ここでは、任意の InputStream を指定できます。
Java 10以降、ByteArrayOutputStream#toString(Charset)
.
String s = baos.toString(StandardCharsets.UTF_8);