如何以流方式将实体保存到SDCard(以避免内存问题)。

关于此事,我找不到任何可靠的文档。

        response = httpClient.execute(request);

        BufferedHttpEntity responseEntity = new BufferedHttpEntity(response.getEntity());

        FileOutputStream fos = new FileOutputStream(Files.SDCARD + savePath);

        responseEntity.writeTo(fos);

        fos.flush();
        fos.close();


这给了我文件,但没有内容。 (大小为2KB)。因此,它不能正确编写。

服务器正在发送FileStream。我已经确认可以工作。

最佳答案

我会尝试这种方法:

HttpResponse response = httpClient.execute(post);

InputStream input = response.getEntity().getContent();
OutputStream output = new FileOutputStream("path/to/file");
int read = 0;

byte[] bytes = new byte[1024];
while ((read = input.read(bytes)) != -1) {
    output.write(bytes, 0, read);
}
output.close();


希望能帮助到你。
干杯。

关于android - 将BufferedHttpEntity保存到文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19705041/

10-10 06:28