Читать все стандартные входные данные в байтовый массив Java
Какой самый простой способ в современной Java (используя только стандартные библиотеки) для чтениявсе стандартный ввод до EOF в байтовый массив, желательно без необходимости самому предоставлять этот массив? Данные stdin - это двоичные данные, а не файлы.
То есть что-то вроде Руби
foo = $stdin.read
Единственное частичное решение, которое я мог придумать, было в духе
byte[] buf = new byte[1000000];
int b;
int i = 0;
while (true) {
b = System.in.read();
if (b == -1)
break;
buf[i++] = (byte) b;
}
byte[] foo[i] = Arrays.copyOfRange(buf, 0, i);
... но это кажется странно многословным даже для Java и использует буфер фиксированного размера.