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


筆記整理 來源於《Java核心技術卷 I 》 《Java編程思想》

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);
 

2.1 時間與日期的轉換符

 

 

可以采用一個格式化的字符串支出要被格式化的參數索引,索引必須緊跟在%后面,並以$終止,例如:
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(Paths.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(Paths.get(“myfile.txt”));
           …
}
 
 
文件末尾寫入 
FileWriter writer = new FileWriter("myfile.txt", true);

writer.write("信息");

換行 writer.write(dates+"\r\n");

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM