Читать все стандартные входные данные в байтовый массив 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, и использует буфер фиксированного размера.