概述
java在運行時接受用戶輸入的方法主要可以通過兩個類來實現:
- Scanner類
- BufferReader類
關于Scanner類
Scanner類是一個基于正則表達式的文本掃描器,它可以從文件,輸入流淤击,字符串中解析出基本類型值和字符串值弦赖。
Scanner類提供了多種構造函數,因此他可以根據不同的構造函數接受不同的數據源:文件甸祭,輸入流和字符串等捌年。
Scanner提供的主要方法:
hasNext()方法:判斷是否還有下一個輸入項。此外還提供了haxNextXxxx()方法朽寞,這個Xxxxx方法可以使Int、Long等等
next()方法:獲取下一個輸入項斩郎。此外還提供了nextXxxx()脑融。
useDelimiter()方法:設置分隔符。
事實上缩宜,Scanner還提供了兩個簡單的方法來進行逐行讀取
boolean hasNextLine():返回輸入源中是否還有下一行
String nextLine():返回輸入源中中下一行的字符串肘迎。
exp:
package com.java.environment;
import java.util.Scanner;
public class scanner {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//Scanner sc=new Scanner(new File("test.c"));
while(sc.hasNext()){
System.out.println(sc.next());
}
sc.close();
}
}
關于BufferedReader類
這個類是比較老的類了,BufferedReader是Java IO流中的一個字符锻煌、包裝流妓布,它必須建立在另一個字符流的基礎上。
System.in本身是字節(jié)流宋梧,所以使用BufferedReader的話要使用InputStreamBuffer將輸入字節(jié)流包裝成字符流才能使用匣沼。
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamBuffer(System.in));
String line = null;
while((line = br.readLine())!=null){
System.out.println("用戶輸入的內容是:"+line);
}
}