Java.io.ByteArrayInputStream.mark() Method
Advertisements
Description
The java.io.ByteArrayInputStream.mark(int readAheadLimit) method sets the current mark position in the stream. By default the mark ByteArrayInputStream are marked at postion 0.
Declaration
Following is the declaration for java.io.ByteArrayInputStream.mark(int readAheadLimit) method:
public void mark(int readAheadLimit)
Parameters
readLimit -- This integer value for this class has no meaning.
Return Value
This method doesn't return any value.
Exception
NA
Example
The following example shows the usage of java.io.ByteArrayInputStream.mark(int readAheadLimit) method.
package com.tutorialspoint;
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class ByteArrayInputStreamDemo {
public static void main(String[] args) throws IOException {
byte[] buf = {65, 66, 67, 68, 69};
ByteArrayInputStream bais = null;
try{
// create new byte array input stream
bais = new ByteArrayInputStream(buf);
// print bytes
System.out.println("Byte read "+ bais.read());
System.out.println("Byte read "+ bais.read());
System.out.println("Byte read "+ bais.read());
System.out.println("Mark() invocation");
// mark() invocation;
bais.mark(0);
System.out.println("Byte read "+ bais.read());
System.out.println("Byte read "+ bais.read());
System.out.println("Reset() invocation");
// reset() invocation
bais.reset();
System.out.println("Byte read "+ bais.read());
System.out.println("Byte read "+ bais.read());
}catch(Exception e){
// if I/O error occurs
e.printStackTrace();
}finally{
if(bais!=null)
bais.close();
}
}
}
Let us compile and run the above program, this will produce the following result:
Byte read 65 Byte read 66 Byte read 67 Mark() invocation Byte read 68 Byte read 69 Reset() invocation Byte read 68 Byte read 69