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);
当遇到`java.io.IOException: mark/reset not supported`异常时,问题在于尝试在不支持mark和reset操作的InputStream上使用这些方法。这是因为InputStream本身没有内置缓冲区,不支持回溯。为了解决这个问题,可以将原始InputStream包装成BufferedInputStream,因为BufferedInputStream提供了所需的缓冲功能。通过创建BufferedInputStream实例,如`BufferedInputStream bfi = new BufferedInputStream(is);`,即可启用mark和reset操作。

3374

被折叠的 条评论
为什么被折叠?



