2. 读取控制台输入


控制台输入是通过从System.in读取来完成的。为了获得与控制台关联的基于字符的流,可以在BufferedReader对象中封装System.in
其构造函数如下 : BufferedReader(Reader inputReader)
System.in是一个字节流,需要通过转换流InputStreamReader来转换成字符流,具体的代码如下 :

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

推荐在创建InputStreamReader时指定与控制台相关联的字符集。字符集定义了字节映射到字符的方式。如果不指定字符集会使用JVM默认的字符集。

InputStreamReader(InputStream inputStream, Charset charset)

2.1 读取字符


为了从BufferedReader对象获取字符,需要使用read方法。

int read() throws IOException

下面是一个示例程序

package LearnIO;  
  
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
  
/**  
 * 测试  
 *  
 * @author cat  
 * @version 2025/2/27 16:43  
 * @since JDK17  
 */  
public class Test01 {  
    public static void main(String[] args) throws IOException {  
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));  
        char c;  
        do {  
            c = ((char) reader.read());  
            System.out.println(c);  
        } while (c != 'q');  
    }  
}
输出 : 
abcdeq // 这一行是我的输入
a
b
c
d
e
q

在默认情况下,System.in是按行缓冲的,这意味着在你按下换行之前,实际上没有输入传到程序。

2.2 读取字符串


为了从键盘读取字符串,可使用BufferedReader类的readLine方法,String readLine() throws IOException

package LearnIO;  
  
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
  
/**  
 * 使用readLine方法  
 *  
 * @author cat  
 * @version 2025/2/27 17:01  
 * @since JDK17  
 */  
public class UseReadLine {  
    public static void main(String[] args) throws IOException {  
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));  
        String str;  
        do {  
            str = reader.readLine();  
            System.out.println(str);  
        } while (!"stop".equals(str));  
    }  
}
输出 : 
曲·启明
曲·启明
露西亚·誓焰
露西亚·誓焰
stop
stop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值