黃階低級 - 《 Java 核心》- 3.7 輸入輸出 - 修改0次

輸入輸出

1、讀取輸入

  • 構建一個 Scanner 對象,並與”標準輸入流“ System.in 關聯:
Scanner scan = new Scanner(System.in);
//構建一個 Scanner 對象,並與”標準輸入流“ System.in 關聯
  • 因爲輸入是可見的,所以 Scanner 類不適用於控制檯讀取密碼,可以使用 Console 類,但每次只能讀取一行,而且在 IDE 上無法使用:
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");

2、格式化輸出

  • 一種方法是 Java 沿用了 C 語言的 printf 方法!
System.out.printf("%,.2f", 10000 / 3.0);//輸出3,333.33
  • 另一種方法可以用 String.format 方法創建一個不輸出的格式化字符串。
String name = "boy";
int age = 10;
String message = String.format("Hello,%s.Next year,you'll be %d \n", name, age);
System.out.printf(message);
// 輸出Hello,boy.Next year,you'll be 10
  • 打印當前時間和日期
System.out.printf("%tc", new Date());
// 輸出 星期六 八月 13 16:52:09 CST 2016

3、文件輸入與輸出

文件的輸入和輸出都需要一個專門的對象來做這件事

  • 對文件進行讀取,使用一個File對象來構造一個 Scanner 對象:
try {
    Scanner scan = new Scanner(Paths.get("/home/Desktop/myfile.txt"));
// 如果是win系統,使用雙反斜槓
    } catch (IOException e) {
        e.printStackTrace();
    }
  • Scanner 可以帶字符串參數,但會被解釋爲數據:
Scanner scan = new Scanner("/home/Desktop/myfile.txt");
// 這個scanner會將參數作爲'h'、'o'、'm'、'e'等字符
  • 寫入文件需要構造一個 PrintWriter 對象:
PrintWriter out = new PrintWriter("/home/Desktop/myfile2.txt");
//在構造器中只需要提供文件名,沒有的話會新建,如果之前已存在會覆蓋,最好先檢查一下,防止丟失數據
  • 使用絕對路徑可以避免一些麻煩
  • 如果用一個不存在的文件構造一個Scanner,或者用一個不能被創建的文件名來構造一個PrintWriter,就會發生異常。
發佈了41 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章