while (chars_out<size)
        {
         out.write(data,0,size-chars_out);
        }
      chars_out++;
这里
chars_out++;
应该在循环里面把,否则是死循环:
while (chars_out<size)
        {
         out.write(data,0,size-chars_out);
        chars_out++;
        }

解决方案 »

  1.   

    楼上的说错了吧!while (chars_out<size)                        
            {
             out.write(data,0,size-chars_out);
            }
          chars_out++;
    while的条件为真,执行写操作
          为假, 执行自加!文件太大(1楼的答案有可能!楼主是不是这样子呢?)
      

  2.   

    while (chars_out<size)                        
            {
             out.write(data,0,size-chars_out);
            }
          chars_out++;
    while的条件为真,执行写操作
          为假, 执行自加!????while是循环把,不是条件语句把这样试试就知道了
    while (chars_out<size)                        
            {
             out.write(data,0,size-chars_out);
             System.out.println(size);
            }
          chars_out++;