import java.io.ByteArrayInputStream;
import java.io.IOException;
public class MarkExample {
public static void main(String[] args) {
try {
// 初始化一个字节数组,内有5个字节的数据
byte[] bytes={1,2,3,4,5};
// 用一个ByteArrayInputStream来读取这个字节数组
ByteArrayInputStream in=new ByteArrayInputStream(bytes);
// 将ByteArrayInputStream包含在一个BufferedInputStream,并初始化缓冲区大小为2。
BufferedInputStream bis=new BufferedInputStream(in,2);
// 读取字节1
System.out.print(bis.read()+“,”);
// 在字节2处做标记,同时设置readlimit参数为1
// 根据JAVA文档mark以后最多只能读取1个字节,否则mark标记失效,但实际运行结果不是这样
System.out.println(“mark”);
bis.mark(1);
/*
- 连续读取两个字节,超过了readlimit的大小,mark标记仍有效
*/
// 连续读取两个字节
System.out.print(bis.read()+“,”);
System.out.print(bis.read()+“,”);
// 调用reset方法,未发生异常,说明mark标记仍有效。
// 因为,虽然readlimit参数为1,但是这个BufferedInputStream类的缓冲区大小为2,
// 所以允许读取2字节
System.out.println(“reset”);
bis.reset();
/*
-
连续读取3个字节,超过了缓冲区大小,mark标记失效。
-
在这个例子中BufferedInputStream类的缓冲区大小大于readlimit,
-
mark标记由缓冲区大小决定
*/
// reset重置后连续读取3个字节,超过了BufferedInputStream类的缓冲区大小
System.out.print(bis.read()+“,”);
System.out.print(bis.read()+“,”);
System.out.print(bis.read()+“,”);
// 再次调用reset重置,抛出异常,说明mark后读取3个字节,mark标记失效
System.out.println(“reset again”);
bis.reset();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最后如何让自己一步步成为技术专家
说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。
当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。
推荐一份Java架构之路必备的学习笔记,内容相当全面!!!
成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。
你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!
进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!
【关注】+【转发】+【点赞】支持我!创作不易!
了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB
生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!
进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!
【关注】+【转发】+【点赞】支持我!创作不易!
了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB