缓冲流

作者: 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,关闭流

相关文章

  • IO流之缓冲流(处理流之一)

    处理流之一:缓冲流 缓冲流:BufferedInputStreamBufferedOutputStreamBuff...

  • 2020-07-03字节缓冲流

    字节缓冲流 字节缓冲流类介绍①BufferedOutputStream:该类实现缓冲输出流。通过设置这样的输出流,...

  • 缓冲流

    缓冲流是为了读取和写入的速度,提高效率主要包括:字节缓冲流和字符缓冲流 字节缓冲流: 根据流的方向,共有2个:字节...

  • File&IO (2)

    1.字节缓冲流 1.1字节缓冲流构造方法【应用】 字节缓冲流介绍lBufferOutputStream:该类实现缓...

  • Java学习Day18

    今日学习内容总结 缓冲流 转换流 序列化 打印流 缓冲流 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增...

  • No.17 字节缓冲流/字符缓冲流

    字节缓冲流: 字节缓冲流简介:1.BufferedInputStream/BufferedOutputStream...

  • 缓冲流

    概述 缓冲流,也叫高效流,是对4个基本流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedI...

  • 缓冲流

  • 缓冲流、转换流、序列化流

    主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据...

  • Java基础 缓冲流、转换流、序列化流

    主要内容 转换流 缓冲流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据...

网友评论

      本文标题:缓冲流

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