我想知道java.io包中的ByteArrayInputStream类是否适合使用?或者,如果要使用字节数组将其与自己的类进行比较,例如:
private int pos = 0;
private final byte[] total;
public Reader(final byte[] total) {
this.total = total;
}
public int read() {
return ((int) total[pos++]) & 0xFF;
}
字节不是从文件获得的,它应该是服务器接收字节/数据包。该功能与ByteArrayInputStream中的功能相同。我很好奇是否会使用ByteArrayInputStream类,它是否增加了放入Java内存的字节数?但基本上,从性能角度来看,哪个会更推荐?
谢谢。
编辑*我想我已经回答了,我想知道mark()和skip()方法之间有什么区别?功能似乎是相同的,只是一个改变了位置,一个读取了字节以跳过它们。
最佳答案
您对read()
的实现惊人地类似于ByteArrayInputStream
中的实现:
public synchronized int read() {
return (pos < count) ? (buf[pos++] & 0xff) : -1;
}
只有额外的开销来自
synchronized
,我认为这可以忽略不计。 ByteArrayInputStream
基本上是byte[]
的薄包装。您想实现什么?