public static void inputStreamToFile(InputStream is, String fileName) throws IOException { 

         OutputStream outputStream=null; 

         File file = new File(fileName); 

         outputStream = new FileOutputStream(file); 

         int bytesWritten = 0; 

         int byteCount = 0; 

         byte[] bytes = new byte[1024]; 

         while ((byteCount = is.read(bytes)) != -1) 

         { 

             outputStream.write(bytes, bytesWritten, byteCount); 

             bytesWritten += byteCount; 

         } 

         is.close(); 

         outputStream.close(); 

     }

只能写入1M数据到文件中,第二次调用outputStream.write时就会报数组下标越界。。找半天没有找到原因


然后只能另外找一种方式

public static void getFile(InputStream is,String fileName) throws IOException{
    BufferedInputStream in=null;
    BufferedOutputStream out=null;
    in=new BufferedInputStream(is);
    out=new BufferedOutputStream(new FileOutputStream(fileName));
    int len=-1;
    byte[] b=new byte[1024];
    while((len=in.read(b))!=-1){
        out.write(b,0,len);
    }
    in.close();
    out.close();
}