1. 程式人生 > >Java流之讀取標準流的輸入

Java流之讀取標準流的輸入

與程式互動時,從鍵盤獲取輸入內容是常有之事,這時可以考慮如下兩種方式實現輸入,使用Scanner類,或者使用BufferedReader。示例一,使用Scanner掃描鍵盤輸入:
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {

        // 當通過new Scanner(System.in)建立一個Scanner,
        // 如果要獲取輸入的內容,則只需要呼叫Scanner的nextLine()方法即可。
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("輸入exit退出程式");
            if (scanner.hasNext()) {
                //nextLine()方法會一直等待輸入,直到敲回車鍵
                String inputString = scanner.nextLine();
                if ("exit".equals(inputString)) {
                    System.out.println("程式即將退出...");
                    break;
                }
                System.out.println("Your input: " + inputString);
                //為了更加醒目地展示程式的輸出,此處空一行,把程式的輸出與提示語(輸入exit退出程式)隔開
                System.out.println();
            }
        }
    }
}
示例二,使用緩衝流BufferedReader獲取從鍵盤輸入的內容:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Created by Administrator on 2018/2/26.
 */
public class KeyboardInputTest {
    public static void main(String[] args) throws IOException {
        //InputStreamReader轉換流(位元組輸入流轉換為字元輸入流),System.in是位元組流,而在控制檯想展示的是字元,所以進行一下轉換
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String userInput = "";
        while ((userInput = bufferedReader.readLine()) != "") {
            System.out.println("輸入exit退出程式");
            if ("exit".equals(userInput)) {
                System.out.println("程式即將退出...");
                System.exit(1);
            }
            System.out.println("Your input: " + userInput);
            System.out.println();
        }
    }
}
示例二中BufferedReader是處理流,建立時需要一個輸入物件流作為引數。