何时逐字节使用 @Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
view.setY(event.getRawY() + dY);
view.setX(event.getRawX() + dX);
break;
default:
return false;
}
return true;
}
以及何时使用read()
字节数组。我认为阅读read(byte[])
数组总是更好。那么你能举例说明在哪里使用read(byte[])
逐字节或read()
字节数组。 OR BufferedInputStream。?
读者也是如此。
答案 0 :(得分:0)
有时你不能分配一个输入缓冲区(非常有限的内存),所以你逐字节地处理输入。
所有BufferedInputStream
真正做的是它为您管理byte[]
缓冲区并在后台调用read(byte[])
。然后,您可以一次调用read()
一个字节,而不必担心系统调用的开销。
如果您只想读取N个字节并存储它们,分配byte[N]
并将其传递给read(byte[])
就完全没问了。
答案 1 :(得分:0)
这是我一段时间以来所考虑的事情,我做出的决定可能会对你有所帮助。所以,这是我的2美分。
在某些情况下,假设您想要读取一百万字节的数据。传递这些字节的数组将需要顺序分配一百万字节。在受限制的环境中,这可能是非常有问题的。因此,您最好逐字节读取,然后根据要求处理它们。
BufferedInputStream
,ByteBuffer
和排序,只是帮助您以更简单,更简化的方式管理对字节数组的访问。