【发布时间】:2013-09-18 14:03:12
【问题描述】:
我正在处理一些 Java 代码,其中有一个 InputStream,我读取了一次,然后我需要以相同的方法再次读取它。
问题是我需要将它的位置重新设置为开始才能读取它两次。
我找到了解决问题的方法:
is.mark(Integer.MAX_VALUE);
//Read the InputStream is fully
// { ... }
try
{
is.reset();
}
catch (IOException e)
{
e.printStackTrace();
}
此解决方案是否会导致一些意想不到的行为?或者它会在它的愚蠢中工作?
【问题讨论】:
-
在读取代码也会
mark()它的情况下可能会失败。 -
你可以扩展InputStream,重写mark方法,使其在一个实例中只能调用一次。