从标准输入读取

本文详细介绍了如何在Java中利用System.in读取标准输入,并通过BufferedReader进行包装,实现逐行读取输入并打印的功能。重点在于理解如何处理输入流和输出流之间的交互,以及在实际应用中可能遇到的异常情况。

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

按照标准 I/O 模型,Java 提供了 System.in,System.out 和 System.err。在整本书里,
我们已经看到了怎样用 System.out 将数据写出到标准输出,其中 System.out 已经事先
被包装成了 printStream 对象。System.err 同样也是 PrintStream,但 System.in 却
是一个没有被包装的未经加工的 InputStream。这意味尽管我们可以立即使用
System.out  和 System.err,但是在读取 System.in 之前必须对其进行包装。


通常我们会用 readLine()一次一行地读取输入,因此我们会将 System.in 包装成
BufferedReader 来使用。为此,我们必须用 InputStreamReader 把 System.in 转换成
Reader。下面这个例子将直接重复你所输入的每一行。


//: c12:Echo.java
// How to read from standard input.
// {RunByHand}
import java.io.*;


public class Echo {
    public static void main(String[] args)
  throws IOException {
    BufferedReader in = new BufferedReader(
      new InputStreamReader(System.in));
        String s; 
        while((s = in.readLine()) != null && s.length() != 0)
      System.out.println(s);
        // An empty line or Ctrl-Z terminates the program
    } 
} ///:~


使用异常规范是因为 readLine()会抛出 IOException。注意,System.in 和大多数流

一样,通常应该对它进行缓冲。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值