SDK23中缺少ByteArrayBuffer

时间:2015-08-21 11:05:54

标签: android

当更新android SDK 22-> 23 org.apache.http.util.ByteArrayBuffer不再存在时 - 是否有更换或者这是一个错误?

2 个答案:

答案 0 :(得分:37)

这个答案可能有点晚了,但另一种方法是用 ByteArrayOutputStream 替换 ByteArrayBuffer 并使用如下字节数组:

使用ByteArraybuffer的代码示例:

   BufferedInputStream bis = new BufferedInputStream(is);
   ByteArrayBuffer baf = new ByteArrayBuffer(50);
   while ((current = bis.read()) != -1) {
                baf.append((byte) current);
   }
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(buffer.toByteArray());

现在,使用 ByteArrayOutputStream

     BufferedInputStream bis = new BufferedInputStream(is);
     ByteArrayOutputStream buffer = new ByteArrayOutputStream();
     //We create an array of bytes
     byte[] data = new byte[50];
     int current = 0;

     while((current = bis.read(data,0,data.length)) != -1){
           buffer.write(data,0,current);
     }

     FileOutputStream fos = new FileOutputStream(file);
     fos.write(buffer.toByteArray());
     fos.close();

嗯,我希望这很有用。

答案 1 :(得分:5)

来自javadoc:

  

此类在API级别22中已弃用。

     

请改用openConnection()。有关详细信息,请访问此webpage