在Java中,BufferedReader 是一个什么类啊,有什么作用啊

如题所述

1、java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

2、从标准输入流System.in中直接读取使用者输入时,使用者每输入一个字符,System.in就读取一个字符。为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲。readLine()方法会在读取到使用者的换行字符时,再一次将整行字符串传入。

3、System.in是一个位流,为了转换为字符流,可使用InputStreamReader为其进行字符转换,然后再使用BufferedReader为其增加缓冲功能。例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

下面的示例示范了BufferedReader和BufferedWriter的使用。可以在文字模式下输入字符,程序会将输入的文字存储至指定的文件中,如果要结束程序,输入quit字符串即可。
Java代码 :
package ysu.hxy;
import java.util.*;
import java.io.*;

public class BufferedReaderWriterDemo {
public static void main(String[] args) {
try {
//缓冲System.in输入流
//System.in是位流,可以通过InputStreamReader将其转换为字符流
BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));
//缓冲FileWriter
BufferedWriter bufWriter = new BufferedWriter(new FileWriter(args[0]));
String input = null;
//每读一行进行一次写入动作
while(!(input = bufReader.readLine()).equals("quit")) {
bufWriter.write(input);
//newLine()方法写入与操作系统相依的换行字符,依执行环境当时的OS来决定该输出那种换行字符
bufWriter.newLine();
}
bufReader.close();
bufWriter.close();
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println("没有指定文件");
} catch(IOException e) {
e.printStackTrace();
}
}
}
//运行后会在目录下产生一个文件test2.txt,并在其中写入刚才输入的内容。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-18
BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。

可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,

BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
可以对使用 DataInputStream 进行按原文输入的程序进行本地化,方法是用合适的 BufferedReader 替换每个 DataInputStream。

简单点说,它就是一个带缓冲的输入流,并且可以包装其他的Read ,提高效率。 懂了吗? 不清楚的话,可以再问我哦!本回答被提问者和网友采纳
第2个回答  2010-09-18
io中的Reader对象
读数据的,类似输入输出流,有缓冲,效率高

请问JAVA中的BufferedReader是什么意思?
BufferedReader是缓存流的一个类。缓存流是计算机领域中输入输出流的一种常见形式。包括BufferedInputStream\/ BufferedOutputStream 类和BufferedReader\/ BufferedWriter类。BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。缓存流是过滤流,在创建具体流时需要给出一个InputS...

java中reader?
在Java中,Reader是字符流类的基础,它提供了一个抽象的接口来读取字符数据。Reader类的主要作用是提供一个通用的读取字符流的方法,可以用于任何基于字符的输入流。FileReader和BufferedReader都继承自Reader类,但它们的功能有所不同。FileReader是专门用于从文件读取字符的类,它直接读取文件中的字符数据。然...

Java中有几种类型的流?
BufferedReader有读取行的功能,readLine()RandomAccessFile类 RandomAccessFile类创建的流指向既可以作为源也可以作为目的地。换句话说,当想对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流 构造方法:RandomAccessFile(String name,String mode)参数name用来确定一个文件名,给出流...

在java中,BufferedReader需要用import导入吗?
BufferedReader是io包中的类,需要用import导入 导入语句为 import java.io.BufferedReader;

bufferedreader用法区别
BufferedReader用于读取文本数据,它的主要作用是缓冲输入流,提高读取效率。详细解释如下:1. 基本用法 BufferedReader通常与InputStream配合使用,用于从输入流中读取文本数据。它有一个重要的方法`readLine`,可以逐行读取文本。例如,你可以使用FileInputStream配合BufferedReader来读取一个文件。这样,你可以按...

详解下java中的BufferedReader语句如何用
BufferedReader是缓冲流, INputStream是字节流 可以想象成一个水管, 在INputStream外面包了一层, 以供读取方便, 就简单理解成, InputStream这个水管一下只能有一滴水从这里通过, 而BufferedReader套在这个水管上, 就可以一下读一串水流 system.in 是放到标准的键盘设备上 然后在命令行打印一句话 请...

java中Scanner和BufferedReader的区别
Scanner是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器!也就是控制台应用程序最为常用的文本输入方式!Scanner取得输入数据的依据是空格符:如按下空格键,Tab键或者Enter键,Scanner就会返回下一个输入。所以说Scanner不能输入空格,如果你希望取得含有空格的字符串BufferedReader可以做到。Bu...

java BuffferedReader类
当我们讨论Java中的BufferedReader类时,一个关键点是它如何处理程序运行时可能出现的异常情况。BufferedReader在读取输入流时,如果遇到IOException,比如ioe异常,程序通常会按照预设的机制进行处理。在这种情况下,开发者可以选择在遇到IOException时执行特定的代码,例如输出错误信息,如`ioe.printStackTrace();...

理解不了BufferedReader的大小有什么作用?
1、java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的...

java中bufferreader就是nio吗
BufferedReader是旧IO的字符输入流缓冲。不是NIO里的缓冲。NIO的缓冲基类是Buffer,在java.nio包。

相似回答