總網頁瀏覽量

2015年10月13日 星期二

[Java] 輸入的練習

列出了兩種輸入, 一個是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

因為講得比較仔細, 想說寫下來也是對自己的練習

沒有留言:

張貼留言