mark() 和reset的使用
2015-12-30 12:49
435 查看
mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效。如果在mark后读取超过readlimit字节数据,mark标记就会失效,调用reset()方法会有异常。 和缓冲区有关
参看:http://www.cnblogs.com/zhang-qiang/articles/2050885.html
public class BufferedMark {
public static void main(String [] args) throws Exception{
File file = new File("E:"+File.separator+"test.txt");
InputStream in = null;
in = new FileInputStream(file);
resetStream(input(in));
}
private static BufferedInputStream input(InputStream input) throws Exception{
BufferedInputStream in = new BufferedInputStream(input,2) ;
System.out.println("读取..");
in.mark(3);
return in;
}
private static void resetStream(InputStream input){
try {
System.out.println("reset.."+input.markSupported());
int temp =0;
byte b[] = new byte[10];
// while((temp=input.read())!=-1){
// in.read(b);
temp = input.read();
System.out.print((char)temp+".");
System.out.print((char)input.read()+".");
System.out.print((char)input.read()+".");
input.reset();
System.out.print((char)input.read()+".");
System.out.print((char)input.read()+".");
// }
input.close();
input.mark(10);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效。如果在mark后读取超过readlimit字节数据,mark标记就会失效,调用reset()方法会有异常。 和缓冲区有关
参看:http://www.cnblogs.com/zhang-qiang/articles/2050885.html
public class BufferedMark {
public static void main(String [] args) throws Exception{
File file = new File("E:"+File.separator+"test.txt");
InputStream in = null;
in = new FileInputStream(file);
resetStream(input(in));
}
private static BufferedInputStream input(InputStream input) throws Exception{
BufferedInputStream in = new BufferedInputStream(input,2) ;
System.out.println("读取..");
in.mark(3);
return in;
}
private static void resetStream(InputStream input){
try {
System.out.println("reset.."+input.markSupported());
int temp =0;
byte b[] = new byte[10];
// while((temp=input.read())!=-1){
// in.read(b);
temp = input.read();
System.out.print((char)temp+".");
System.out.print((char)input.read()+".");
System.out.print((char)input.read()+".");
input.reset();
System.out.print((char)input.read()+".");
System.out.print((char)input.read()+".");
// }
input.close();
input.mark(10);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相关文章推荐
- 正则(自编留平时自用)
- Spectral Analysis and Filtering with the Wavelet Transform
- tar压缩解压缩命令详解
- Linux系统基本知识说明和启动Linux虚拟机
- JSON学习
- Mysql存储过程查询结果赋值到变量的方法
- 运维常用SQL命令(oracle)
- struts_basics
- Sun的JDK7、OpenJDK及IcedTea释疑
- The Wavelet Lifting Scheme
- 我的世界mod
- 定时器----Timer
- The Daubechies D4 Wavelet Transform
- 初步了解MVVM模式
- 浅谈地图分幅
- NodeJS 学习资料
- iOS UI-三种简单的动画设置
- A Linear Algebra View of the Wavelet Transform
- Windows搭建solrcloud(转载)
- caffe 如何调用python层