Liest alle Standardeingaben in ein Java-Byte-Array
Was ist der einfachste Weg in modernen Java (mit nur den Standard-Bibliotheken) zu lesenalle Standardeingabe bis EOF in ein Byte-Array, vorzugsweise ohne dieses Array selbst bereitstellen zu müssen? Die stdin-Daten sind Binärdaten und stammen nicht aus einer Datei.
Das heißt so etwas wie Ruby's
foo = $stdin.read
Die einzige Teillösung, an die ich denken konnte, war nach dem Muster von
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);
... aber das scheint selbst für Java bizarr ausführlich zu sein und verwendet einen Puffer mit fester Größe.