【问题标题】:Argument in mark method of ByteArrayInputStreamByteArrayInputStream 的 mark 方法中的参数
【发布时间】: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() 方法的工作原理吗?

【问题讨论】:

标签: java bytearrayinputstream


【解决方案1】:

来自the docs

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

编辑:还可以查看the source code

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    相关资源
    最近更新 更多