Java:我怎样才能多次阅读阅读器?

Java:我怎样才能多次阅读阅读器?,java,Java,如果我调用IOUtils.toString(reader)返回正确的字符串值。第二次调用返回“。读卡器不支持重置 如何解决这种情况?使用支持重置的java.io.Reader,例如CharArrayReader(请参阅) 如果设置了标记,则还支持有限字符数的reset() 更一般地说,该方法指示您正在使用的读卡器的实现是否支持标记/重置(感谢Bala R指出的注释)。如果读卡器不支持标记()和重置(),则无法使读卡器“可读取”。但是,您可以使用显示的调用返回的字符串来创建StringReader

如果我调用
IOUtils.toString(reader)返回正确的字符串值。第二次调用返回
。读卡器不支持重置


如何解决这种情况?

使用支持重置的java.io.Reader,例如
CharArrayReader
(请参阅)

如果设置了标记,则还支持有限字符数的reset()


更一般地说,该方法指示您正在使用的读卡器的实现是否支持标记/重置(感谢Bala R指出的注释)。

如果
读卡器不支持
标记()
重置()
,则无法使
读卡器“可读取”。但是,您可以使用显示的调用返回的
字符串来创建
StringReader
任意次数,并根据需要读取它们(或者在单个实例上使用
mark()
reset()
根据需要重新读取)。

并非所有
Reader
InputStream
都具有重置功能。使用读取器的
bool markSupported()
InputStream
查看您的输入是否支持它,然后才能调用
reset()
根据BufferedReader的缓冲大小,您可以重置的字符数也有限制。