黑马程序员技术交流社区

标题: 数组越界~!!! [打印本页]

作者: 张志明    时间: 2014-2-7 22:57
标题: 数组越界~!!!
  1. byte[]
  2. buffer=new byte[1024];
  3. private DataInputStream myDataInputStream = new DataInputStream(new BufferedInputStream(mySocket.getInputStream()));
  4. private FileOutputStream myFileOutputStream =  new FileOutputStream(new File("C\\:test.png"));
  5. public void getFile(){
  6. int count=0;int all=0;do{count=myDataInputStream.read(buffer,0,buffer.length);
  7. myFileOutputStream.write(buffer,0,count);
  8. all+=count;//记录一共接收了多少文件
  9. }
  10. while(count>-1);
  11. }
复制代码


最后all的值为9999,并且getFile()报出了数组越界异常。
为什么呢~!!???


努力进黑马~!!!
作者: 杨道红    时间: 2014-2-8 09:59
  1. byte[]
  2. buffer=new byte[1024];
  3. private DataInputStream myDataInputStream = new DataInputStream(new BufferedInputStream(mySocket.getInputStream()));
  4. private FileOutputStream myFileOutputStream =  new FileOutputStream(new File("C\\:test.png"));
  5. public void getFile(){
  6. int count=0;int all=0;
  7. /*do{count=myDataInputStream.read(buffer,0,buffer.length);
  8. myFileOutputStream.write(buffer,0,count);
  9. all+=count;//记录一共接收了多少文件
  10. }
  11. while(count>-1);
  12. */
  13. while((count=myDataInputStream.read(buffer,0,buffer.length))!=-1){
  14. myFileOutputStream.write(buffer,0,count);
  15. all+=count;//记录一共接收了多少文件
  16. }
  17. }
复制代码

你用do while循环中 do肯定会执行一次。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2