Java缓冲区之输入输出流

本文通过实例详细介绍了Java中的缓冲区在处理输入流和输出流时的工作原理。从字节流和字符流的角度出发,阐述了如何使用BufferedInputStream和BufferedOutputStream进行数据读写,并分析了缓冲区的填充和数据传输过程,强调了正确关闭资源的重要性。
摘要由CSDN通过智能技术生成

Java缓冲区之输入输出流

--模范青蛙

 

下面我想通过一个例子来简单介绍一下流在缓冲区是怎么被读写的。

InputStream OutputStream Reader Writer都是抽象类,他们本身并没有实现多少方法,本身又为抽象类,我们无法创建他们的对象,只能使用多态来创建子类的对象。来实现具体的功能。

    字符流的底层都是通过字节流来操作的,在这里只拿字节流的一个例子来分析一下。

    所讲的内容完全是根据以下代码分析的,希望读者也能结合代码收看。

    当编译器把Test_01.java编译过后,会生成一个Test_01.class文件,我们也通常称它为字节码文件,虚拟机启动时会把这个字节码文件加载到内存,至于是如何加载到内存的,我在另一篇文章中有详细的记录。http://download.csdn.net/detail/mo_fan_qing_wa/8990107在这里就不重复造轮子了。之后虚拟机会找到main(),按照这里面的代码,一步一步的执行。下面我们首先会看到一个try{}catch(){}语句,这是由于在创建对象时,需要指定创建文件的位置,如果指定的位置不存在,就会出现IOException异常,所以在整个步骤中,需要对IO异常进行try处理。下面看第二行代码:

InputStream in=new FileInputStream("d:\\a.java");//它的作用就是将d盘下的a.java文件封装成一个对象(in),在执行BufferedInputStream bin=new BufferedInputStream(in);第二行代码的时候,把这个对象(in)作为参数传入,BufferedInputStream 会通过内部的fill()方法和流对象in来填充它内部的缓冲区。

我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值