java.io.IOException: mark/reset not supported 异常
问题说明:
给定的流不支持mark
和reset
操作
问题分析:
mark
和reset
操作要求输入流能够进行读写头的来回移动操作,一般在缓冲区内对输入流进行读写操作,而InpurStream
输入流并无缓冲区,故InputStream
不允许mark
和reset
机制
问题解决:
由于mark
和reset
操作要求输入流有缓冲区,又由于BufferedInputStream
继承于FilterInputStream
,提供缓冲输入流功能,所以将InpurStream
打包成BufferedInputStream
即可。
代码:
// 定义一个输入流
InputStream is = null;
// 将 InputStream 输入流打包成 BufferedInputStream
BufferedInputStream bfi = new BufferedInputStream(is);