您的位置:首页 > 其它

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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: