java - BufferedInputStream 和 BufferedOutputstream 与 InputStream 和 Outputstream 有区别吗

标签 java android inputstream

最近,当我试图在我的 android 应用程序中实现一个基本的文件下载器时,我在使用 InputStreams 和 OutputStreams 时遇到了麻烦。详细说明这就是我的做法。

我使用 apache HttpClient 类获得一个 InputStream 对象,然后尝试将流写入文件。但是奇怪的是,当我缓冲 InputStream 或 OutputStream 时,我得到一个不可读的文件……这是代码……

//为了使代码简洁,我删除了异常和流关闭..

private void download(InputStream in,String fileName){   

//if i dont use the buffered thing and read directly from in everything is ok
// same is the buffered out i had to use in/outstream 
BufferedInputStream bufferedIn = new BufferedInputStream(in);  
FileOutputStream fout = new FileOutputStream(new File(fileName));  

BufferedOutputstream  bufferedOut = new BufferedOutputstream(fout);    
int read = -1;

while((read = bufferedIn.read()) != -1){
   bufferedOut.write(read);
}
//close the buffers
}

最佳答案

当你完成它时,你必须刷新缓冲的输出流。

关于java - BufferedInputStream 和 BufferedOutputstream 与 InputStream 和 Outputstream 有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467174/

相关文章:

java - 为 Java HTTP GET 解码 InputStream

java - JFileChooser 扩展

Android 蓝牙套接字未创建

android - 动态添加图像

java - 使用 BLOB 对象将图像插入 SQL 表时出现异常

http流响应不支持消息类型: class org. jboss.netty.handler.stream.ChunkedStream

java - jUnit @beforeAll 不工作

Java AsynchronousSocketChannel 读操作

java - 为什么我在调用此 Java 类时收到 "non static variable"错误?

android - Visual Studio Code(Flutter) 中的 build.gradle 错误