侧边栏壁纸
博主头像
憨憨大头个人博客博主等级

心存希冀,目有繁星

  • 累计撰写 110 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Java中IO流基本介绍——BufferedReader和BufferedWriter

Administrator
2024-08-28 / 0 评论 / 0 点赞 / 8 阅读 / 2112 字

1、 基本概括

img

2 、主要介绍

2.1 高效流BufferedReader和BufferedWriter的优势

提高效率:为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效

率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度。

简化了操作。

2.2 BufferedReader 缓冲区大小

BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读取文本文件时,会

先尽量从文件中读入字符数据并放满缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲

区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储

至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

2.3 ReusableBufferedReader:可重用的 BufferedReader

标准 Java 的弱点之一BufferedReader是它只能使用一次。一旦你关闭它,它就不再可用。如果需要读取大量

文件或网络流,则必须为要读取的每个文件或网络流创建一个新的 BufferedReader。这意味着您正在创建一

个新对象,更重要的是,创建一个新的 char 数组,该数组用作 BufferedReader 内的缓冲区。如果读取的文

件或流的数量很高,并且它们被快速读取,这会给 Java 垃圾收集器带来压力。

另一种方法是创建一个可重用的 BufferedReader ,您可以在其中替换基础 source Reader,因此可以重用

BufferedReader 及其内部字节数组缓冲区。具体实现可以上网查询。

2.4 readLine()方法的原理和newLine()的底层原理

readLine():无论是读一行,获取读取多个字符,其最终都是在硬盘上一个一个的读取。所以最终使用的还是

read()方法一次读一个的方法。

newLine():根据系统来决定换行符

注意 不同的操作系统中换行符是不同的

  • window:Windows系统里面,每行结尾是 回车+换行(CR+LF),即“\r\n”;

  • linux:Unix系统里,每行结尾只有 换行CR,即“\n”;

  • mac:Mac系统里,每行结尾是 回车CR 即'\r'。

2.5 System.in

从标准输入流System.in中直接读取使用者输入时,使用者每输入一个字符,System.in就读取一个字符。为了

能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲。readLine()方法会在

读取到使用者的换行字符时,再一次将整行字符串传入。

0

评论区