【发布时间】:2019-07-26 08:06:48
【问题描述】:
我尝试了以下代码来了解 ByteArrayInputStream 的mark() 方法的工作原理。
class tryByteArray
{
public static void main(String args[]) throws Exception
{
byte[] buffer={71, 69, 69, 75, 83};
try(ByteArrayInputStream obj=new ByteArrayInputStream(buffer))
{
System.out.println("\nChar "+(char)obj.read());
obj.mark(0);
System.out.println("Char "+(char)obj.read());
System.out.println("Char "+(char)obj.read());
System.out.println("Char "+(char)obj.read());
obj.reset();
System.out.println("\nChar "+(char)obj.read());
System.out.println("Char "+(char)obj.read());
}
}
}
它给出了以下输出:-
Char G
Char E
Char E
Char K
Char E
Char E
但是当我将 mark() 方法的参数更改为 1,2 或任何数字时,它仍然显示相同的输出。有人可以向我解释mark() 方法的工作原理吗?
【问题讨论】: