ByteArrayInputStream 的 mark 方法中的参数
Argument in mark method of ByteArrayInputStream
我尝试了以下代码来理解 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()
方法的工作原理吗?
来自the docs:
Note: The readAheadLimit for this class has no meaning.
编辑: 另请参阅 the source code。
我尝试了以下代码来理解 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()
方法的工作原理吗?
来自the docs:
Note: The readAheadLimit for this class has no meaning.
编辑: 另请参阅 the source code。