Java流之讀取標準流的輸入
阿新 • • 發佈:2019-02-10
與程式互動時,從鍵盤獲取輸入內容是常有之事,這時可以考慮如下兩種方式實現輸入,使用Scanner類,或者使用BufferedReader。示例一,使用Scanner掃描鍵盤輸入:
示例二,使用緩衝流BufferedReader獲取從鍵盤輸入的內容: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(); } } }