それらを直接に書き出すだけOutputStream
です-それらをエンコードする必要はありません:
// Or wherever you get them from
byte[][] arrays = new byte[10][128];
...
for (byte[] array : arrays) {
outputStream.write(array);
}
次に、(で)読むときInputStream
:
byte[][] arrays = new byte[10][];
for (int i = 0; i < arrays.length; i++) {
arrays[i] = readExactly(inputStream, 128);
}
...
private static byte[] readExactly(InputStream input, int size) throws IOException {
byte[] ret = new byte[size];
int bytesRemaining = size;
while (bytesRemaining > 0) {
int bytesRead = input.read(ret, size - bytesRemaining, bytesRemaining);
if (bytesRead == -1) {
throw new IOException("Ran out of data");
}
}
return ret;
}
に10回の呼び出しを発行して、毎回128バイトを読み取ると想定することはできないことに注意してください。InputStream.read