简而言之,我需要用一个流做两件事。
我需要通过一个方法传递一个流,以查看该流的字节是否属于特定类型。
检查完成后,我需要使用该流创建一个新类。
我对流很陌生,我知道它们是“单向街道”。因此,如果我发现自己需要重用流,我认为我的代码设计不好。
这是逻辑的片段:
byte[] header = new byte[1024];
//reads entire array or until EOF whichever is first
bis.mark(header.length);
bis.read(header);
if(isFileType(header)) {
bis.reset();
_data.put(fileName, new MyClass(bis)); // Stream is now closed...
methodForFinalBytes(bis);
} else {
// Do other stuff;
}