BufferedOutputStream字节缓冲输出流和BufferedInputStream字节缓冲输入流
BufferedOutputStream字节缓冲输出流
java.io.BufferedOutputStream extends OutputStream
BufferedOutputStream:字节缓冲输出流
继承自父类的共性成员方法:
void |
close()
关闭此输出流并释放与此流相关联的任何系统资源。
|
void |
flush()
刷新此输出流并强制任何缓冲的输出字节被写出。
|
void |
write(byte[] b)
将
b.length字节从指定的字节数组写入此输出流。 |
void |
write(byte[] b, int off, int len)
从指定的字节数组写入
len个字节,从偏移 off开始输出到此输出流。 |
abstract void |
write(int b)
将指定的字节写入此输出流。
|
构造方法:
BufferedOutputStream(OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
|
BufferedOutputStream(OutputStream out, int size)
创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。
|
使用步骤(重点):
1.创建FileOutputStream对象,构造方法中绑定要输出的目的地
2.创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提高FileOutputStream对象效率
3.使用BufferedOutputStream对象中的方法write,把数据写入到内部缓冲区中
4.使用BufferedOutputStream对象中的方法flush,把内部缓冲区中的数据,刷新到文件中
5.释放资源(会先调用flush方法刷新数据,第4步可以省略)
public class DemoBuffered { public static void main(String[] args) throws IOException { FileOutputStream outputStream = new FileOutputStream("a.txt"); //存入缓冲区 BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream); bufferedOutputStream.write("把数据写入内部缓冲区中".getBytes()); bufferedOutputStream.flush();//刷新 bufferedOutputStream.close();//关闭资源 } }
运行结果:

BufferedInputStream字节缓冲输入流
java.io.BufferedInputStream extends InputStream
BufferedInputStream:字节流缓冲输入流
继承自父类的成员方法:
int |
available()
返回从该输入流中可以读取(或跳过)的字节数的估计值,而不会被下一次调用此输入流的方法阻塞。
|
void |
close()
关闭此输入流并释放与流相关联的任何系统资源。
|
void |
mark(int readlimit)
标记此输入流中的当前位置。
|
boolean |
markSupported()
测试这个输入流是否支持
mark和 reset方法。 |
abstract int |
read()
从输入流读取数据的下一个字节。
|
int |
read(byte[] b)
从输入流读取一些字节数,并将它们存储到缓冲区
b 。 |
int |
read(byte[] b, int off, int len)
从输入流读取最多
len字节的数据到一个字节数组。 |
void |
reset()
将此流重新定位到上次在此输入流上调用
mark方法时的位置。 |
long |
skip(long n)
跳过并丢弃来自此输入流的
n字节数据。 |
构造方法:
BufferedInputStream(InputStream in)
创建一个
BufferedInputStream并保存其参数,输入流 in ,供以后使用。 |
BufferedInputStream(InputStream in, int size)
创建
BufferedInputStream具有指定缓冲区大小,并保存其参数,输入流 in ,供以后使用。 |
参数:
InputStream in:字节输入流
我们可以传递FileInputStream,缓冲流会给FileInputStream增加一个缓冲区,提高FileInputStream的读取效率
int size:指定缓冲流内部缓冲区的大小,不指定默认
使用步骤:(重点)
1.创建FileInputStream对象,构造方法中绑定要读取的数据源
2.创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提高FileInputStream对象的读取效率
3.使用BufferedInputStream对象中的方法read,读取文件
4.释放资源
void |
reset()
从输入流中读取数据的下一个字节
|
运行结果:
public class DemoBuffered { public static void main(String[] args) throws IOException { FileInputStream inputStream = new FileInputStream("a.txt"); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); int lne; while ((lne=bufferedInputStream.read())!=-1){ System.out.println(lne); } bufferedInputStream.close(); } }
int |
read(byte[] b)
从输入流读取一些字节数,并将它们存储到缓冲区
b |
public class DemoBuffered { public static void main(String[] args) throws IOException { FileInputStream inputStream = new FileInputStream("a.txt"); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); byte[] bys = new byte[1024]; int lne; while ((lne=bufferedInputStream.read(bys))!=-1){ System.out.println(new String(bys,0,lne)); } bufferedInputStream.close(); } }

浙公网安备 33010602011771号