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();
}
}
}
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];