我想知道是否是 ByteArrayInputStream java.io 包中的类好用吗?或者,如果要通过使用字节数组将其与自己的类进行比较,例如:
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[]
的薄包装。你想达到什么目的?
关于java - ByteArrayInputStream 与自己的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9704724/