列出了兩種輸入, 一個是Scanner的, 另一個是Console, 由網路上的範例參考, 自己在做點修改
在JDK 6中新增了java.io.Console類別,
可以讓您取得字元為基礎的主控台裝置,
例如,您可以藉由System新增的console()方法取得標 準輸入輸出裝置的Console物件,
並利用它來執行一些簡單的主控台文字輸入輸出,
對於主控台下的密碼輸入,Console類別還提供有一個簡單readPassword()方法,
在讀取使用者於 主控台下輸入的密碼時,不會顯示使用者輸入的字元(這在過去要用其它麻煩的方式來達到)
import java.util.*;
import java.io.*;
public class Input_example{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.print("Enter your string(Scanner): ");
String s = sc.next();
System.out.println("Your input: "+s);
System.out.print("\nEnter your string(console): ");
Console console = System.console();
String cs = console.readLine();
System.out.println("\nYour input is: "+cs);
System.out.print("\nEnter your name: ");
cs = console.readLine();
char[] password = console.readPassword("Enter your password: ");
System.out.println("\nYour enter the name is : "+cs);
System.out.println("Your enter the password is : "+new String(password));
}
}
Console類別也提供有reader()與writer()方法,可以傳回 Reader、 Writer 物件,以便進行其它的IO處理,例如結合Scanner一同使用:
Scanner scanner = new Scanner(System.console().reader());
要注意的是,以javaw所執行的應用程式(例如在使用Eclipse或NetBeans等IDE時),沒有主控台(Console),也就取不到Console物件,使用System.console()只會傳回null。
PS. Console 指的是標準輸入輸出裝置,像是 Windows 上的命令提示字元,或其它作業系統上終端機等提供文字模式的東西。
Console參考:
http://openhome.cc/Gossip/JavaGossip-V1/Console.htm
因為講得比較仔細, 想說寫下來也是對自己的練習
沒有留言:
張貼留言