详解java IO流之缓冲流的使用

2025-05-29 0 81

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装。当对文件或其他目标频繁读写或操作效率低,效能差。这时使用缓冲流能够更高效的读写信息。因为缓冲流先将数据缓存起来,然后一起写入或读取出来。所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能。

缓冲流分为字节和字符缓冲流

字节缓冲流为:

BufferedInputStream—字节输入缓冲流

BufferedOutputStream—字节输出缓冲流

字符缓冲流为:

BufferedReader—字符输入缓冲流

BufferedWriter—字符输出缓冲流

下面主要介绍这四种缓冲流的使用。

一. 字节缓冲流

1.BufferedOutputStream—字节输出缓冲流

BufferedOutputStream类实现缓冲的输出了,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必每一个字节写入都调用底层系统。

示例代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
public static void main(String[] args) {

try {

//创建字节输出流实例

OutputStream out=new FileOutputStream("L:\\\\test.txt");

//根据字节输出流构建字节缓冲流

BufferedOutputStream buf=new BufferedOutputStream(out);

String data="好好学习,天天向上";

buf.write(data.getBytes());//写入缓冲区

buf.flush();//刷新缓冲区,即把内容写入

//关闭流

buf.close();//关闭缓冲流时,也会刷新一次缓冲区

out.close();

} catch (IOException e) {

e.printStackTrace();

}

}

2.BufferedInputStream—字节输入缓冲流

BufferedInputStream为别的输入流添加缓冲功能,在创建BufferedInputStream时会创建一个内部缓冲数组,用于缓冲数据,提高性能。

示例代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
public static void main(String[] args) {

try {

//创建字节输入流实例

InputStream in=new FileInputStream("L:\\\\test.txt");

//根据字节输入流构建字节缓冲流

BufferedInputStream buf=new BufferedInputStream(in);

byte[]bytes=new byte[1024];

//数据读取

int len=-1;

StringBuffer sb=new StringBuffer();

while((len=buf.read(bytes))!=-1)

{

sb.append(new String(bytes,0,len));

}

System.out.println("内容为:"+sb);

//关闭流

buf.close();

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

二. 字符缓冲流

1.BufferedWriter—字符输出缓冲流

将文本写入字符输出流,缓冲各个字符,从而提供高效的写入。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。

示例代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
public static void main(String[] args) {

try {

Writer w=new FileWriter("L:\\\\test.txt");

//根据字符输出流创建字符缓冲流

BufferedWriter buf=new BufferedWriter(w);

//写入数据

buf.write("只要功夫深铁杵磨成针");

//刷新流

buf.flush();

//关闭流

buf.close();

w.close();

} catch (IOException e) {

e.printStackTrace();

}

}

2.BufferedReader—字符输入缓冲流

从字符输入流中读取信息,缓冲各个字符,从而实现高效读取。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。默认大小为8192.

示例代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21
public static void main(String[] args) {

try {

Reader r=new FileReader("L:\\\\test.txt");

//根据字符输入流创建字符缓冲流

BufferedReader buf=new BufferedReader(r);

char [] data=new char[512];

//数据读取

int len=-1;

StringBuilder sb=new StringBuilder();

while((len=buf.read(data))!=-1)

{

sb.append(new String(data,0,len));

}

System.out.println("内容是: "+sb);

//关闭流

buf.close();

r.close();

} catch (IOException e) {

e.printStackTrace();

}

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持快网idc!

原文链接:http://www.cnblogs.com/hq233/p/6266928.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 详解java IO流之缓冲流的使用 https://www.kuaiidc.com/119441.html

相关文章

发表评论
暂无评论