缓冲流

作者: Mango_yes | 来源:发表于2017-09-07 11:45 被阅读0次

    缓冲流是为了读取和写入的速度,提高效率主要包括:字节缓冲流和字符缓冲流

    字节缓冲流:

    根据流的方向,共有2个:字节缓冲输出流BufferedOutputStream和字节缓冲输入流BufferedInputStream,它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度

    构造方法:public BufferedOutputStream(OutputStream out);

    //创建基本的字节输出流

    FileOutputStream fileOut=newFileOutputStream("abc.txt");

    //使用高效的流,把基本的流进行封装,实现速度的提升

    BufferedOutputStream out=newBufferedOutputStream(fileOut);

    //2,写数据

    out.write("hello".getBytes());

    //3,关闭流

    out.close();

    }

    构造方法:public BufferedInputStream(InputStream in);

    FileInputStream fileIn =newFileInputStream("abc.txt");

    //把基本的流包装成高效的流

    BufferedInputStream in =newBufferedInputStream(fileIn);

    //2,读数据

    int ch = -1;

    while( (ch = in.read()) != -1 ) {

    //打印

    System.out.print((char)ch);

    }

    //3,关闭

    in.close();

    高效的实现复制文件;

    BufferedInputStream in =newBufferedInputStream(newFileInputStream("c:\\a.txt"));

    //2,指定目的地

    BufferedOutputStream out=newBufferedOutputStream(newFileOutputStream("c:\\b.txt"));

    //3,读数据

    byte[] buffer =newbyte[1024];

    intlen = -1;

    while( (len = in.read(buffer)) != -1) {

    //4,写数据

    out.write(buffer, 0, len);

    }

    //5,关闭流

    in.close();

    out.close();

    字符缓冲流:

    字符缓冲输入流BufferedReader。字符缓冲输出流BufferedWriter

    BufferedWriter

    //创建流

    //基本字符输出流

    FileWriter fileOut =newFileWriter("file.txt");

    //把基本的流进行包装

    BufferedWriter out =newBufferedWriter(fileOut);

    //2,写数据

    for(inti=0; i<5; i++) {

    out.write("hello");

    out.newLine();//写入换行

    }

    //3,关闭流

    out.close();

    }

    BufferedReader

    从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

    publicStringreadLine()读取一个文本行,包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回null

    //1,创建流

    BufferedReader in =newBufferedReader(newFileReader("file.txt"));

    //2,读数据

    //一次读取文本中一行的字符串内容

    String line =null;

    while( (line = in.readLine()) !=null){

    System.out.println(line);

    }

    //3,关闭流

    in.close();

    使用缓冲流高效的完成文件的复制

    //1,指定数据源,是数据源中读数据,采用输入流

    BufferedReader in =newBufferedReader(newFileReader("file.txt"));

    //2,指定目的地,是把数据写入目的地,采用输出流

    BufferedWriter out =newBufferedWriter(newFileWriter("copyFile.txt"));

    //3,读数据

    String line =null;

    while( (line = in.readLine()) !=null) {

    //4,写数据

    out.write(line);

    //写入换行符号

    out.newLine();}

    //5,关闭流

    out.close(); in.close();

    }

    这么多流该如何选择:

    目的设备:

    硬盘:文件File开头。

    内存:数组,字符串。

    屏幕:System.out

    网络:Socket

    完全可以明确具体要使用哪个流对象。

    知识点总结

    字节流

    字节输入流InputStream

    FileInputStream操作文件的字节输入流

    BufferedInputStream高效的字节输入流

    字节输出流OutputStream

    FileOutputStream操作文件的字节输出流

    BufferedOutputStream高效的字节输出流

    字符流

    字符输入流Reader

    FileReader操作文件的字符输入流

    BufferedReader高效的字符输入流

    InputStreamReader输入操作的转换流(把字节流封装成字符流)

    字符输出流Writer

    FileWriter操作文件的字符输出流

    BufferedWriter高效的字符输出流

    OutputStreamWriter输出操作的转换流(把字节流封装成字符流)

    方法:

    读数据方法:

    read()一次读一个字节或字符的方法

    read(byte[]char[])一次读一个数组数据的方法

    readLine()一次读一行字符串的方法(BufferedReader类特有方法)

    readObject()从流中读取对象(ObjectInputStream特有方法)

    写数据方法:

    write(int)一次写一个字节或字符到文件中

    write(byte[] char[])一次写一个数组数据到文件中

    write(String)一次写一个字符串内容到文件中

    uwriteObject(Object )写对象到流中(ObjectOutputStream类特有方法)

    unewLine()写一个换行符号(BufferedWriter类特有方法)

    向文件中写入数据的过程

    1,创建输出流对象

    2,写数据到文件

    3,关闭输出流

    从文件中读数据的过程

    1,创建输入流对象

    2,从文件中读数据

    3,关闭输入流

    l文件复制的过程

    1,创建输入流(数据源)

    2,创建输出流(目的地)

    3,从输入流中读数据

    4,通过输出流,把数据写入目的地

    5,关闭流

    相关文章

      网友评论

          本文标题:缓冲流

          本文链接:https://www.haomeiwen.com/subject/ljnbjxtx.html