关于BufferedInputStream以及缓冲区的一些疑问
事实上看视频上老师演示BufferedInputStream的原理,也是用了read(byte[] b) 的方法,然后一个个从数组里面取出来,然后return出去。
那么BufferedInputStream有什么用?只是封装好一个数组?然后封装了一些方法?
不用它一样可以使用缓冲来读跟写。
例如下面的代码
当然我这个是有问题的,其实问题出在哪里我也不知道,求大神指导。
import java.io.*;
class abc
{
public static void main(String[] args) throws IOException
{
FileInputStream fis = new FileInputStream("d:\\02.jpg");
FileOutputStream fos = new FileOutputStream("d:\\00000000.jpg");
byte[] a = new byte[1024*4];
int ch;
while((ch=fis.read())!=-1)
{
fis.read(a);
fos.write(a);
}
}
}
那么问题就来了,我写的这个demo可以运行,也创建了文件并且传了数据,但是数据大小跟源文件差了1k,很显然哪里出错了。
但是的思路哪里错了,我实在想不出来,希望高手解答。
相关推荐
BufferedInputStream 比 InputStream 性能点(实验数据报告)
文本的保存(写入磁盘的时候),字节流 : BufferedInputStream 比 InputStream 性能会比较好点(本人测试过,有实验数据)
BufferedInputStream(缓冲输入流)详解_动力节点Java学院整理
主要为大家详细介绍了BufferedInputStream缓冲输入流的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java IO学习之缓冲输入流(BufferedInputStream)
主要介绍了Java IO学习之缓冲输入流(BufferedInputStream)的相关资料,需要的朋友可以参考下
Java中的BufferedInputStream与BufferedOutputStream使用示例
BufferedInputStream和BufferedOutputStream分别继承于FilterInputStream和FilterOutputStream,代表着缓冲区的输入输出,这里我们就来看一下Java中的BufferedInputStream与BufferedOutputStream使用示例:
BufferedOutputStream与BufferedInputStream
喜欢在下面评论区扣1支持下呗 字节缓冲输出流: BufferedOutputStream (OutputStream out) public class BufferStreamDemo { public static void main(String[] args) throws IOException { //字节缓冲输出流: BufferedOutputStream (OutputStream out) FileOutputStream fos = new FileOutputStream( "demo.txt"); BufferedOutputStream bos = n


Java SE
