Java BufferedReader 类


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()

猜你喜欢

转载自blog.csdn.net/Beyond_Nothing/article/details/111818400