java-IO流4(缓冲输出字节流)

来源:互联网 发布:奇商网络 编辑:程序博客网 时间:2024/05/21 18:40

输出字节流

——–| OutputStream 所有输出字节流的基类 抽象类
————| FileOutputStream 向文件 输出数据 的输出字节流
————| Bufferedoutputstream 缓冲输出字节流 BufferedOutputStream出现的目的是为了提高写数据的效率

内部也是维护了一个8kb的字节数组而已。

使用BufferedOutputStream的步骤:

1. 找到目标文件2. 建立数据的输出通道

BufferedOutputStream 要注意的细节

  1. 使用BufferedOutStream写数据的时候,它的write方法是是先把数据写到它内部维护的字节数组中。
  2. 使用BufferedOutStream写数据的时候,它的write方法是是先把数据写到它内部维护的字节数组中,如果需要把数据真正的写到硬盘上面,需要

    调用flush方法或者是close方法、 或者是内部维护的字节数组已经填满数据的时候。

详看案例:

public class Demo2 {    public static void main(String[] args) throws IOException {        //找到目标文件        File file = new File("F:\\a.txt");        //建立数据的输出通道        FileOutputStream  fileOutputStream = new FileOutputStream(file);        //建立缓冲输出字节流对象        BufferedOutputStream bufferedOutputStream  = new BufferedOutputStream(fileOutputStream);        //把数据写出        bufferedOutputStream.write("hello world".getBytes());         //把缓冲数组中内部的数据写到硬盘上面。        //bufferedOutputStream.flush();        bufferedOutputStream.close();    }}

案例: 使用缓冲输入输出字节流拷贝一个图片

public class CopyImage {    public static void main(String[] args) throws IOException {        //找到目标文件        File  inFile = new File("F:\\美女\\1.jpg");        File outFile = new File("E:\\1.jpg");        //建立数据输入输出通道        FileInputStream fileInputStream = new FileInputStream(inFile);        FileOutputStream fileOutputStream = new FileOutputStream(outFile);        //建立缓冲输入输出流        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);        //边读边写        int content = 0;         // int length = bufferedInputStream.read(buf);   如果传入了缓冲数组,内容是存储到缓冲数组中,返回值是存储到缓冲数组中的字节个数。        while((content = bufferedInputStream.read())!=-1){ // 如果使用read方法没有传入缓冲数组,那么返回值是读取到的内容。            bufferedOutputStream.write(content);//          bufferedOutputStream.flush();        }        //关闭资源        bufferedInputStream.close();        bufferedOutputStream.close();    }}
0 0
原创粉丝点击