Java ByteArrayInputStream.mark(int)方法

原文:https://www.studytonight.com/java-file-io/java-bytearrayinputstream-mark-method

在本教程中,我们将学习 JavaBytearrainputstream类的mark(int readAheadLimit)方法。此方法用于设置流中当前标记的位置。默认情况下,标记ByteArrayInputStream标记在零位置。如果没有设置标记,那么标记的值就是传递给构造器的偏移量。

语法:

这是此方法的语法声明。它接受在标记位置无效之前可以读取的最大字节数限制,并且不返回任何值。

public void mark(int readAheadLimit)

示例 2:ByteArrayInputStream标记()方法

这里,我们使用 mark()方法标记流中的位置,以便稍后可以检索相同的位置并从这一点开始读取。

import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        byte[] buf = { 1, 2, 3, 4, 5 }; 

        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buf); 

        System.out.println(byteArrayInputStream.read()); 
        System.out.println(byteArrayInputStream.read()); 
        System.out.println(byteArrayInputStream.read()); 

        System.out.println("Mark() called"); 
        byteArrayInputStream.mark(0); 
        System.out.println(byteArrayInputStream.read()); 
        System.out.println(byteArrayInputStream.read()); 
    }  
}

1 2 3 马克()名为 4 5

示例 2:ByteArrayInputStream标记()方法

当我们调用 mark()方法时,它标记流中的位置,当我们调用 reset()方法时,我们开始从流中最近标记的位置读取数据。

import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        byte[] buf = { 1, 2, 3 }; 

        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buf); 

        System.out.println(byteArrayInputStream.read()); 

        System.out.println("Mark() method called"); 

        byteArrayInputStream.mark(3); 
        System.out.println(byteArrayInputStream.read()); 
        System.out.println(byteArrayInputStream.read()); 
    }  
}

1 马克()法称为 2 3

mail结论:

在本教程中,我们学习了 JavaBytearrainputstream类的mark(int readAheadLimit)方法,该方法用于设置流中的当前标记位置。默认情况下,它在最初构造时标记在位置 0。