BufferReader的用法

import java.io.*;
class Outbuffuer {
public static void main(String arg[])throws IOException{
BufferedReader b = new BufferedReader(newFileReader("C://c.txt"));
boolean c;

do{

String s = b.readLine();

System.out.println(s);

}while(c = b.read()!=-1);
}
}

BufferReadwer用来读入文件中的程序,底下有不同的操作支持。

 

从字符输入流中读取文本并将字符存入缓冲区以便能提供字符、数组和线段的高效读取。

可指定缓冲区尺寸或使用缺省尺寸。该缺省尺寸对大多数用途来说是足够的。


通常, Reader 的每个读请求引起由基本字符或字节流组成的相关的读请求。因此,建议将 BufferedReader 和代价太高的read() 操作的 Reader 来打包,如
FileReaders 和 InputStreamReaders 。例如,

 BufferedReader in

   = new BufferedReader(new FileReader("foo.in"));

 

缓冲指定文件的输入。若无缓冲,则每个 read() 或 readLine()调用将字节从文件中读出、转换为字符,然后返回,这种处理方法的效率是非常低的。

通过用适当的 BufferReader 替换每个 DatainputStream 可以使使用
DataInputStream 作为文本输入的程序本地化。




类 java.io.BufferedReader


java.lang.Object

   |

   +----java.io.Reader

           |

           +----java.io.BufferedReader





public class BufferedReader
extends Reader
下列类的父类:
 
LineNumberReader



出现于:
JDK1.1
 
参见:
 
FileReader, InputStreamReader





构造子索引


BufferedReader(Reader)
创建使用缺省尺寸输入缓冲区的缓冲字符输入流。
BufferedReader(Reader, int)
创建使用指定尺寸输入缓冲区的缓冲字符输入流。



方法索引


close()
关闭流。
mark(int)
标记此流的当前位置。
markSupported()
报告此流是否支持 mark() 实现的操作。
read()
读取单一字符。
read(char[], int, int)
将若干字符读入一个数组中。
readLine()
读取一文本行。
ready()
报告此流是否读就绪。
reset()
将该流复位为最近标记。
skip(long)
跳过若干字符。




构造子



BufferedReader
 public BufferedReader(Reader in,

                       int sz)



创建使用指定尺寸输入缓冲区的缓冲字符输入流。



 
参数:
 
in - 一个 Reader
 
sz - 输入缓冲尺寸
抛出:
IllegalArgumentException
 
若 sz <= 0



BufferedReader
 public BufferedReader(Reader in)



创建使用缺省尺寸输入缓冲区的缓冲字符输入流。



 
参数:
 
in - 一个 Reader





方法


read
 public int read() throws IOException



读取单一字符。



 
抛出:
OException
 
如果发生一 I/O 错误。
 
覆盖:
 

Reader 中的   read



read
 public int read(char cbuf[],

                   int off,

                 int len) throws IOException



将若干字符读入一个数组中。

通常该方法从该流的字符缓冲区中获取字符,必要时用基本流填充。然而,
若缓冲区为空、标记无效、请求长度至少与缓冲区相同大,则该方法将从基本流中将字符直接读入给定数组。因此冗余的BufferedReader
不复制不必要的数据。



 
参数:
 
cbuf - 目的缓冲区
off - 开始存储字符的偏移量。
 
len - 读取的最大字符数
返回值:
 
读取字节数,若已读到流尾则返回 -1 。
抛出:
OException
 
如果发生一 I/O 错误。
 
覆盖:
 

Reader 中的
read



readLine
 public String readLine() throws IOException



读取一文本行。换行 ('\n')、回车 ('\r') 或紧跟着换行的回车符表示一行的终止。



 
返回值:
 
包含行内容但不包括行终止符的字符串, 若已到达流尾则为 null 。
抛出:
OException
 
如果发生一 I/O 错误。



skip
 public long skip(long n) throws IOException



跳过若干字符。



 
参数:
 
n - 待跳过的字节数
 
返回值:
 
实际跳过的字符数
抛出:
OException
 
如果发生一 I/O 错误。
 
覆盖:
 

Reader 中的     skip



ready
 public boolean ready() throws IOException



报告此流是否已准备读。若缓冲区不为空,或者基本字符流就绪,就表明缓冲字符流就绪。



 
抛出:
OException
 
如果发生一 I/O 错误。
 
覆盖:
 

Reader 中的     ready



markSupported
 public boolean markSupported()



报告此流是否支持 mark() 操作和支持哪一个操作。



 
覆盖:
 

Reader
中的
markSupported



mark
 public void mark(int readAheadLimit) throws IOException



标记此流的当前位置。接着调用 reset() 重新将流定位到该点。



 
参数:
 
readAheadLimit -保持标记不便时,读取的字符数的限制。读取这些字符之后,复位流的试图可以失败。限制值大于输入缓冲区将使所分配缓冲区的尺寸不小于限制。因此慎用大值。
 
抛出:
IllegalArgumentException
 
若 readAheadLimit <0
Throws: OException
 
如果发生一 I/O 错误。
 
覆盖:
 

Reader 中的 mark



reset
 public void reset() throws IOException



将该流复位为最近标记。



 
抛出:
OException
 
若该流仍未标记或标记非法
覆盖:
 

Reader 中的
reset



close
 public void close() throws IOException



关闭流。



 
抛出:
OException
 
如果发生一 I/O 错误。
 
覆盖:
 

Reader 中的 close
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: BufferedReader.read()方法可以用于从输入流中读取一个字符。你需要用一个整数类型的变量来存储读取的字符,如果没有可用的字符则返回-1。下面是一个示例代码: //创建一个BufferedReader对象 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //读取输入 int c; try { while ((c = br.read()) != -1) { //处理读取的字符 } } catch (IOException e) { e.printStackTrace(); } 在上面的代码中,我们首先创建了一个BufferedReader对象,并将其与标准输入流相关联。然后我们使用一个while循环来读取输入,直到读取到输入流的末尾。在读取每个字符后,我们可以对其进行进一步的处理。 ### 回答2: BufferedReader是Java中用于读取字符流的类,它提供了read()方法用于读取字符流中的数据。下面是一个关于如何使用bufferedReader.read()的示例: 1. 首先,需要创建一个BufferedReader对象来读取字符流。可以使用FileReader类来创建BufferedReader对象。例如: ``` FileReader fileReader = new FileReader("example.txt"); BufferedReader bufferedReader = new BufferedReader(fileReader); ``` 这里我们创建了一个BufferedReader对象bufferedReader,并将其与一个文件example.txt关联起来。 2. 然后,可以使用read()方法来读取字符流中的数据。read()方法返回下一个字符的Unicode值,如果已到达流的末尾,则返回-1。例如: ``` int character; while ((character = bufferedReader.read()) != -1) { System.out.print((char) character); } ``` 这段代码将循环读取字符流中的数据,将每个字符打印到控制台。直到遇到流的末尾,循环终止。 3. 最后,需要在读取完成后关闭BufferedReader对象。这样可以释放资源并避免内存泄漏。可以使用close()方法关闭BufferedReader。例如: ``` bufferedReader.close(); ``` 这就是使用BufferedReaderread()方法的基本步骤。需要注意的是,read()方法读取的是字符流中的一个字节,并返回其Unicode值。如果需要以字符串的形式读取数据,可以使用readLine()方法。 ### 回答3: BufferedReaderread()方法用于从输入流中读取字符。其语法如下: int read() 该方法返回的是读取到的字符的Unicode代码点,如果已经到达流的末尾,则返回-1。 下面是一个示例代码,演示了如何使用BufferedReaderread()方法: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFileExample { public static void main(String[] args) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader("example.txt")); int character; while ((character = reader.read()) != -1) { System.out.print((char) character); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } } } } ``` 上述示例代码首先创建了一个BufferedReader对象,并将其与一个文件输入流相关联。接着使用while循环从输入流中不断读取字符,直到读取到末尾为止。在循环中,调用read()方法读取一个字符,并将其转换为char类型后打印出来。最后,需要在合适的位置关闭BufferedReader对象,以释放相关资源。 希望以上解答能够帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值