Если вам нужны только 100 байтов, тогда, вероятно, лучше использовать простой, я бы считал их в массив и обернул их как ByteArrayInputStream.Например,
int length = 100;
byte[] data = new byte[length];
InputStream in = ...; //your inputstream
DataInputStream din = new DataInputStream(din);
din.readFully(data);
ByteArrayInputStream first100Bytes = new ByteArrayInputStream(data);
// pass first100bytes to your clients
Если вы не хотите использовать DataInputStream.readFully
, в Apache commons-io есть IOUtils.readFully
, или вы можете явно выполнить цикл чтения.
Если выиметь более сложные потребности, такие как чтение из сегмента в середине файла или большие объемы данных, затем расширение InputStream и переопределение read (byte [], int, int), а также read (), даст вамлучшая производительность, чем просто переопределение метода read ().