InputStream не будет сброшен в начало
InputStream data = realResponse.getEntity().getContent();
byte[] preview = new byte[100];
data.read(preview, 0, 100);
// Теперь я хочу обратиться к InputStream позже, но я хочу его с начала потока, а не 100 байтов. Я пытался!--1--> это на 100, а потом reset()
после того как я прочитал первые 100 байт, но это не сработало.
какие идеи? Наверное, глупая ошибка..просто не вижу.
2 ответов
при использовании mark()
из java.Ио.InputStream объект, который вы должны проверить с markSupported()
метод, если ваш InputStream фактически поддерживает использование метки. Согласно API InputStream
класса нет, но Ява.Ио.BufferedInputStream делает. Возможно, вам следует встроить свой поток в BufferedInputStream
объект:
InputStream data = new BufferedInputStream(realResponse.getEntity().getContent());
// data.markSupported() should return "true" now
data.mark(some_size);
// work with "data" now
...
data.reset();
если InputStream
Марк поддержек (вы можете проверить с markSupported()
метод), то должно работать следующее:
InputStream data = realResponse.getEntity().getContent();
byte[] preview = new byte[100];
data.mark(100);
data.read(preview, 0, 100);
data.reset();
Однако имейте в виду, что data.read(preview, 0, 100)
is не гарантированно прочитать 100 байт за один раз, он может читать меньше.