使用ByteArrayOutputStream类读取InputStream数据时,出现了java.lang.IndexOutOfBoundsExceptionat java.io.ByteArrayOutputStream.write 问题
我的代码(只有出问题部分的代码) getInputStream=is = socket.getInputStream(); ByteArrayOutputStream=baos = new ByteArrayOutputStream(); byte [] bytes=new byte[5]; int len; while ((len= is.read(bytes))!=0){ baos.write(bytes,0,len); } System.out.println(baos.toString());
原因是:while ((len= is.read(bytes))!=0){ baos.write(bytes,0,len);
中的(len= is.read(bytes))!=0 部分应该是(len= is.read(bytes))!=-1
修改之后就没有问题了