程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 從標准輸入中讀取數據

從標准輸入中讀取數據

編輯:關於JAVA

以Unix首先倡導的“標准輸入”、“標准輸出”以及“標准錯誤輸出”概念為基礎,Java提供了相應的System.in,System.out以及System.err。貫這一整本書,大家都會接觸到如何用System.out進行標准輸出,它已預封裝成一個PrintStream對象。System.err同樣是一個PrintStream,但System.in是一個原始的InputStream,未進行任何封裝處理。這意味著盡管能直接使用System.out和System.err,但必須事先封裝System.in,否則不能從中讀取數據。
典型情況下,我們希望用readLine()每次讀取一行輸入信息,所以需要將System.in封裝到一個DataInputStream中。這是Java 1.0進行行輸入時采取的“老”辦法。在本章稍後,大家還會看到Java 1.1的解決方案。下面是個簡單的例子,作用是回應我們鍵入的每一行內容:
 

//: Echo.java
// How to read from standard input
import java.io.*;

public class Echo {
  public static void main(String[] args) {
    DataInputStream in =
      new DataInputStream(
        new BufferedInputStream(System.in));
    String s;
    try {
      while((s = in.readLine()).length() != 0)
        System.out.println(s);
      // An empty line terminates the program
    } catch(IOException e) {
      e.printStackTrace();
    }
  }
} ///:~

之所以要使用try塊,是由於readLine()可能“擲”出一個IOException。注意同其他大多數流一樣,也應對System.in進行緩沖。
由於在每個程序中都要將System.in封裝到一個DataInputStream內,所以顯得有點不方便。但采用這種設計方案,可以獲得最大的靈活性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved