java简单小问题,为什么出错啊

来源:百度知道 编辑:UC知道 时间:2024/06/30 07:23:42
import java.io.ByteArrayInputStream;

public class ByteArrayTest {
public static void main(String[] args){

try{
byte[] bytes ={23,23,14,2};
byte[] b = null;
ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
bi.read(b,0,2);
bi.close();
}catch(Exception ex){
ex.printStackTrace();
}

}
}

我在我电脑上给你试了一下:

错误出在byte[] b = null;
在你用到b的时候会出现空指针异常.

因为你没有给b分配空间.
所以你用bi.read(b,0,2); 把读到的数据往b里面存的时候就找不到地方,就会抛出异常.

解决办法就是:
如果你要往b里面存多少字节就声明多少的空间.
你的例子中是写入两个字节,就用byte[] b = new byte[2];声明两个字节的空间就可以了.

我在我电脑上能正确运行.
把这句byte[] b = null;换成 byte[] b = new byte[2];就行了.

你再试试看,有问题再提!!!

应该显示的是空指针异常吧```你给b个值看看行不行```

嗯,是b的空指针异常

将byte[] b = null; 换成
byte[] b =new byte[bytes.length];