1. 程式人生 > >Java基礎語法<三> 輸入輸出

Java基礎語法<三> 輸入輸出

ear 打印 數據 pass 之前 ring 異常 png clas

1. 讀取輸入

Scanner in = new Scanner(System.in);

輸入一行(包含空格)
String str = in.nextLine()     

讀取一個單詞(以空白符作為分隔符) String firstName = in.next(); 讀取一個整數 int age = in.nextInt(); 讀取一個浮點數 in.nextDouble() 輸入是可見的,Scanner類不適合從控制臺讀取密碼,Java 6引入Console實現 Console cons = System.console();
char[] passwd = cons.readPassword(“Password:”); 為了安全起見,返回的密碼存放在一維字符數組中,而不是字符串中。在對密碼進行處理之後,應馬上用一個填充值覆蓋數組元素。 采用console輸入一次只能讀取一行。

Java.util.Scanner 5.0

Scanner(InputStream in) 用給定的輸入流創建一個Scanner對象 String nextLine() 讀取輸入的下一行內容 String next() 讀取輸入的下一個單詞(以空格作為分隔符) int nextInt()
double nextDouble() 讀取並轉換下一個表示整數或浮點數的字符序列 boolean hasNext() 檢測輸入中是否還有其他單詞 boolean hasNextInt() boolean hasNextDouble() 檢測是否還有表示整數或浮點數的下一個字符序列

java.lang.System 1.0

static Console console() 6 如果有可能進行交互操作,就通過控制臺窗口為交互的用戶返回一個Console對象。否則返回null。對於任何一個通過控制臺窗口啟動的程序,都可以使用Console對象。否則,其可用性將與使用的系統有關。

java.io.Console
6

static char[] readPassword(String prompt,Object…args) static String readLine(String prompt,Object…args) 顯示字符串primpt並且讀取用戶輸入,知道輸入行結束。args參數可以用來提供輸入格式。

2. 格式化輸出

System.out.printf() 每個以%字符開始的格式說明符都用相應的參數替換。格式說明符尾部的轉換符將指示被格式化的數值類型:f表示浮點數,d表示是十進制整數。 用於printf的轉換符: 技術分享

用於printg的標誌 技術分享

+ 打印正數和負數的符號 +3333.33 空格 在正數之前添加空格 | 3333.33| System.out.printf(“%,(.2f”) 使用分組的分隔符並將負數括在括號內 可以使用s轉換符格式化任意的對象。對於任意實現了Formattable 接口的對象都將調用formatTo方法;否則將調用toString方法,它可以將對象轉換為字符串。 可以使用靜態的String.format方法創建一個格式化的字符串,而不打印輸出: String message = String.format(“Hello,%s. Next Year,you’ll be %d”,name,age);

時間與日期的轉換符

技術分享

技術分享

可以采用一個格式化的字符串支出要被格式化的參數索引,索引必須緊跟在%後面,並以$終止,例如: System.out.printf(“%1$s %2$tB %2$te,%2$tY,”date:”,new Date()); date:February 9, 2004 還可以選擇使用<標誌,指示前面格式說明中的參數將被再次使用。 System.out.printf(“%s %tB %<te %<tY”,”date:”,new Date());

參數索引從1開始

技術分享

3. 文件輸入與輸出

讀取,用File對象構造一個Scanner對象 Scanner in = new Scanner(Path.get(“myfile.txt”)); 如果文件名中包含反斜杠符號,就要記住在每個反斜杠之前再加一個額外的反斜杠:“c:\\mydirectory\\myfile.txt” 然後就可以使用任何一個Scanner方法對文件進行讀取 寫入 需要構造PrintWriter對象。在構造器中,只需要提供文件名 PrintWriter out = new PrintWriter(“myfile.txt”); 如果文件不存在,創建該文件。可以像System.out一樣使用print,println,printf 如果用一個不存在的文件構造一個Scanner,或者用一個不能被創建的文件名構造一個PrintWriter,那麽會發生異常。 Public static void main(String[] args) throw FileNotFoundException { Scanner in = new Scanner(Path.get(“myfile.txt”)); … }

java.util.Scanner 5.0

Scanner(File f) 構造一個從給定文件讀取數據的Scanner Scanner(String data) 構造一個從給定字符串讀取數據的Scanner

java.io.PointWriter 1.1

PrintWriter(String filename) 構造一個將數據寫入文件的PrintWriter.

Java.nio.file.Paths 7

static Path get(String pathname) 根據給定的路徑名構造一個Path

Java基礎語法<三> 輸入輸出