欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java BufferedReader 类

程序员文章站 2024-01-18 22:28:16
...


BufferedReader 类属于一个缓存的输入流, 而且是一个字符流的操作对象
但是对于缓存流, java中有两类: 一类是字节缓存流(BufferedInputStream ), 一类是字符缓存流(BufferedReader)。

BufferedReader 类

public String readLine()
                throws IOException

该方法可以读取一行数据(以回车为换行符)

但是如果要去使用 BufferedReader类有一个问题需要注意, 来观察一下 BufferedReader 类中的定义以及它的构造方法

public class BufferedReader extends Reader
public BufferedReader(Reader in)

范例: 利用BufferedReader实现数据从键盘输入

package com.cwq.beyond;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class TestDemo02 {
	public static void main(String[] args) throws Exception {
		BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("请输入信息: ");
		// 默认的换行模式是BufferedReader是它的最大缺点, 如果不是因为此缺点, 该类还会继续使用
		String str = buf.readLine();  // 接收输入信息, 默认是使用回车换行
		System.out.println("[ECHO] 输入信息为: "+str);
	}
}

使用以上的形式实现的键盘输入还有一个最大的特点, 由于接收的数据类型为String, 也就证明可以使用正则判断, 也可以使用String 类的各种操作进行数据处理, 还可以变为各种常用的数据类型

范例: 由键盘输入数字

package com.cwq.beyond;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class TestDemo02 {
	public static void main(String[] args) throws Exception {
		BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("请输入年龄: ");
		// 默认的换行模式是BufferedReader是它的最大缺点, 如果不是因为此缺点, 该类还会继续使用
		String str = buf.readLine();  // 接收输入信息, 默认是使用回车换行
		if (str.matches("\\d{1,3}")) {  // 是一个数字
			System.out.println("年龄为:"+Integer.parseInt(str)+"岁~");
		}else {
			System.out.println("[ECHO] 输入信息为有误 ");
		}
	}
}

在很多的开发之中, 依然可能会发现有BufferedReader类的身影, 但是这个类随着时间的偏移, 基本不使用了, 已经被新的类 Scanner类取代了,
但是 BufferedReader 类 读取数据很方便, 关键方法 readLine()