InputStream不会重置为开头

Du3*_*Du3 12 java parsing inputstream

InputStream data = realResponse.getEntity().getContent();
byte[] preview = new byte[100];
data.read(preview, 0, 100);
Run Code Online (Sandbox Code Playgroud)

//现在我想稍后引用InputStream,但是我想要它从流的开头,而不是100个字节.我mark()在100处尝试过,然后reset()在我读取前100个字节后,但是​​没有工作要么.

有任何想法吗?可能是一个愚蠢的错误..只是没有看到它.

Pro*_*man 21

当您使用mark()的的的java.io.InputStream对象,你应该与检查markSupported()方法,如果你的InputStream实际上支持使用标记.根据API,InputStream类没有,但是java.io.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();
Run Code Online (Sandbox Code Playgroud)