如何查看输入流中的前两个字节?

2022-09-01 08:09:24

应该很简单:我有一个输入流,我想偷看(而不是读取)前两个字节,即我希望输入流的“当前位置”在我偷看后为0。什么是最好和最安全的方法?

- 正如我所怀疑的那样,解决方案是将其包装在提供可标记性的BufferedInputStream中。谢谢拉斯穆斯


答案 1

对于一般的输入流,我会将其包装在缓冲的输入流中,并执行如下操作:

BufferedInputStream bis = new BufferedInputStream(inputStream);
bis.mark(2);
int byte1 = bis.read();
int byte2 = bis.read();
bis.reset();
// note: you must continue using the BufferedInputStream instead of the inputStream

答案 2

您可能会发现 PushbackInputStream 很有用:

http://docs.oracle.com/javase/6/docs/api/java/io/PushbackInputStream.html


推荐