天天看点

BufferedOutputStreamBufferedOutputStream

BufferedOutputStream

介绍

继承父亲的成员方法

  • java.io.OutputStream

    这个抽象类是表示字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器。

    定义了一些子类共性的成员方法:

    1.public abstract void write(int b)throws IOException

    将指定的字节写入此输出流。 write的一般合同是将一个字节写入输出流

    2.public void write(byte[] b)throws IOException

    将b.length字节从指定的字节数组写入此输出流。 write(b)的一般合约是应该具有与电话write(b, 0, b.length)完全相同的效果。

    3.public void write(byte[] b,int off,int len)throws IOException

    从指定的字节数组写入len字节,从偏移off开始输出到此输出流。

    write(b, off, len)的一般合同是数组b中的一些字节按顺序写入输出流; 元素b[off]是写入的第一个字节, b[off+len-1]是此操作写入的最后一个字节。

  1. public void flush()throws IOException

    刷新此输出流并强制任何缓冲的输出字节被写出。

    flush的一般合同是,呼叫它表明,如果先前写入的任何字节已经通过输出流的实现进行缓冲,则这些字节应该立即被写入到它们的预定目的地。

    5.public void close()throws IOException

    关闭此输出流并释放与此流相关联的任何系统资源。 close的一般合同是关闭输出流。 封闭流不能执行输出操作,无法重新打开。

    构造方法:

    *BufferedOutputStream(OutputStream out)

    创建一个新的缓冲输出流,以将数据写入指定的底层输出流。

    BufferedOutputStream(OutputStream out, int size)

    创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。

    OutputStream out:字节输出流

  • 我们可以传递FileOutPutStream,缓冲流会给FileOutputStream增加一个缓冲区提高写入效率
  • int size:指定缓冲区的大小,不指定默认
  • 使用步骤
  • 1.创建File OutputStream,构造方法中绑定目的地
  • 2.创建Bufferedoutputstream对象,构造方法中传递fileoutputstream对象,提高对象效率
  • 3.调用Bufferedoutputstream对象中的write,把数据写入到内部缓冲区中
  • 4.调用bufferedoutpputstream对象中flush,把内部缓冲区的数据,刷新到文件中
  • 5.释放资源(会先调用flush方法刷新数据,第四步可以省略)

代码块

public class Demo01BufferedOutputStream {
    public static void main(String[] args) throws IOException {
        FileOutputStream fo=new FileOutputStream("src\\cn\\itcast\\IO\\BufferedStream\\1.txt");
        BufferedOutputStream bo=new BufferedOutputStream(fo);
        bo.write("nihao".getBytes(),0,"nihao".length());
        bo.flush();
        bo.close();
    }

}
           

Writer

介绍:

字符型缓冲输出

构造方法

BufferedWriter(Writer out)

创建使用默认大小的输出缓冲区的缓冲字符输出流。

BufferedWriter(Writer out, int sz)

创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。

成员方法

void close()

关闭流,先刷新。

void flush()

刷新流。

void newLine()

写一行行分隔符。

void write(char[] cbuf, int off, int len)

写入字符数组的一部分。

void write(int c)

写一个字符

void write(String s, int off, int len)

写一个字符串的一部分。

  • 使用步骤,
  • 1.创建字符缓冲输出流对象,构造方法中传递字符输出流
  • 2.调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
  • 3.调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据,刷新到文件中
  • 4.释放资源

代码块

public class DemoBufferedWriter {
    public static void main(String[] args)throws IOException {
        BufferedWriter bw=new BufferedWriter(new FileWriter("src\\cn\\itcast\\IO\\BufferedStream\\bufferedwriter.txt"));
        for (int i = 0; i < 10; i++) {
            bw.write("你好,请吃饭!");
            bw.newLine();//转行
        }
        bw.flush();
        bw.close();
        System.out.println();
        /*public void println() {
        newLine();
         }*/
    }
}