InputStreamReader学习笔记心得

本文解析了BuggyEchoInput程序的工作原理,介绍了如何通过InputStreamReader读取键盘输入,并将其转换为字符流的过程。此外,还说明了如何利用BufferedReader处理输入的文本行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在《 Robust Java 中文版》1.1简介的BuggyEchoInput程序代码第5行:
InputStreamReader isr = new InputStreamReader(System.in);
在JDK_API帮助文档中InputStreamReader例句也是BuggyEchoInput程序代码的第5行、第6行两行合并写为一行而已。
见《JDK6API(中文)》原话:
“InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。”
是因为InputStreamReader的构造方法 InputStreamReader(InputStream in) 。
 in 输入流(InputStream)已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
由此可知,BuggyEchoInput程序代码在运行到第5行时会等待键盘的输入,所以光标就停着在那闪啊闪。输入完成后,程序继续运行。到第7行,调用readLine方法把所输入的文本行读取出来赋给inputLine这个字符串。
第5、6行是将所输入的文本从流中InputStream(字节流)传给InputStreamReader(字符流)再放到BufferStream(缓冲流)。
EchoInput程序代码:
 1 import  java.io. * ;
 2
 3 public   class  EchoInput
 4 {
 5    public static void main (String[] args)
 6    {
 7        System.out.println("Enter");
 8        InputStreamReader isr = new InputStreamReader(System.in);
 9        BufferedReader br = new BufferedReader(isr);
10        try
11        {
12            String inputLine = br.readLine();
13            System.out.println(inputLine);
14        }

15        catch(IOException ioe)
16        {
17            System.out.println("Error: "+ioe);
18        }

19    }

20}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值