ByteArrayInputStream类mark()方法mark()方法在java.util包中可用。
mark()方法用于设置流中的当前标记位置,从该位置可以重置读取或写入。
mark()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
在寻求标记位置时,mark()方法可能会引发异常。
IOException:执行输入/输出操作时可能会抛出此异常。
语法:public void mark(int read_from_here);
参数:int read_from_here –表示可以开始读取或写入的标记位置。
返回值:
该方法的返回类型为void,不返回任何内容。
示例//Java程序演示示例
// 标记(int read_from_here)方法
//ByteArrayInputStream-
import java.io.*;
public class MarkBAIS {
public static void main(String[] args) throws Exception {
byte[] by = {
97,
98,
98,
99
};
//实例化ByteArrayInputStream-
ByteArrayInputStream byte_s = new ByteArrayInputStream(by);
//通过使用available()方法是
//返回编号 剩余字节数
//阅读
Integer n_byte = byte_s.available();
System.out.println("Left avail bytes = " + n_byte);
//从流中读取字符
char ch1 = (char) byte_s.read();
char ch2 = (char) byte_s.read();
char ch3 = (char) byte_s.read();
System.out.println("ch1: " + ch1);
System.out.println("ch2 : " + ch2);
System.out.println("byte_s.mark(5): ");
//通过使用mark()方法isto-
//设置限制的字节数
//被阅读
byte_s.mark(5);
System.out.println("ch3: " + ch3);
System.out.println("buff_str.reset(): ");
//重置流
byte_s.reset();
//从书架上读取
char ch4 = (char) byte_s.read();
char ch5 = (char) byte_s.read();
//显示字符
System.out.println("ch4: " + ch4);
System.out.println("ch5: " + ch5);
byte_s.close();
}
}
输出结果Left avail bytes = 4
ch1: a
ch2 : b
byte_s.mark(5):
ch3: b
buff_str.reset():
ch4: c
ch5: ?