そうそう、配列、配列。
配列で何か引っかかって考えてたんだけど、streamは、配列で使うよりBufferでラップして、buf.intStream(); buf.forEach();がjavaぽいなと思って。
allocateDirectのときもあるし、配列に読み出すとコピーが発生するし、配列はreadonlyにできないし。
場合によってはIterable, Collectionのように、iterator, spliterator, forEachがBufferに追加された方がバルク処理にはいいかもしれない。