0

我尝试了以下代码来了解mark()ByteArrayInputStream 方法的工作原理。

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()原理吗?

4

1 回答 1

1

文档

注意:这个类的 readAheadLimit 没有意义。

编辑:还要看看源代码

于 2019-07-26T08:11:07.460 回答