Przeczytaj wszystkie standardowe dane wejściowe w tablicy bajtów Java

Jak najprościej jest czytać współczesną Javę (używając tylko standardowych bibliotek)wszystkie z standardowe wejście do EOF w tablicę bajtów, najlepiej bez konieczności zapewnienia tej tablicy? Dane stdin są materiałami binarnymi i nie pochodzą z pliku.

To znaczy. coś takiego jak Ruby

foo = $stdin.read

Jedyne rozwiązanie częściowe, które mogłem wymyślić, było zgodne z założeniami

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);

... ale to wydaje się dziwnie gadatliwe nawet dla Javy i używa bufora o ustalonym rozmiarze.

questionAnswers(2)

yourAnswerToTheQuestion