System.in為標準輸入流,需要聯合Scanner類一起使用。
Scanner sc = new Scanner(System.in);
Scanner類提供了多種讀取的方式,nextInt讀取下一個整數,nextLine讀取下一行等。
注意:因為此種輸入方式是可見的,所以Scanner類不適用于從控制臺讀取密碼。Java6特別引入了Console類來實現這個目的。
Console cons = System.console();
String username = cons.readLine("User name:");
char[] passwd = cons.readPassword("Password:");
使用Console類的實例方法readPassword來讀取密碼,出于安全考慮,密碼并未存儲在字符串中,而是存儲在字符數組中。在對密碼處理完成之后,應該馬上用一個填充值覆蓋數組元素。
1、標準輸出流
最常用的就是標準輸出流
System.out.println();
2、格式化輸出
除此之外,還可以格式化輸出。Java5沿用了C語言函數庫中的printf方法。
System.out.printf("%8.2f",x);
in是輸出還是輸入。以一個字段寬度打印x:這包括8個字符,另外精度為小數點后2個字符。
每一個用%字符開始的格式說明符都用相應的參數替換,說明符尾部的轉換符指示要格式化的數值的類型。
轉換符 | 類型 |
---|---|
d | 十進制數 |
x | 十六進制數 |
o | 八進制數 |
f | 定義浮點數 |
e | 指數浮點數 |
g | 通用浮點數(e和f中較短的一個) |
a | 十六進制浮點數 |
s | 字符串 |
c | 字符 |
b | 布爾值 |
h | 散列碼 |
tx或Tx | 日期和時間(T強制大寫) |
% | 百分號 |
n | 與平臺無關的行分割符 |
除此之外,還可以控制格式化輸出外觀的各種標志 | |
標志 | 目的 |
— | ---- |
+ | 打印正負的符號 |
空格 | 正數之間添加空格 |
0 | 數字前面添加0 |
- | 左對齊 |
( | 將負數括在括號內 |
, | 添加分組符 |
#(對于f格式) | 包含小數點 |
#(對于x或0格式) | 添加前綴0x或0 |
$ | 參數的索引,后接一個索引值 |
< | 格式化前面說明的數值 |
除此之外,Date類的打印,之前也是使用的格式化輸出,格式包含兩個字母,以t開頭,后面接日期相關的轉換符。 | |
需注意的是,數字和日期的格式化規則是特定于本地化環境的。 |
想要讀取一個文件,需要構造一個Scanner對象
Scanner in = new Scanner(Path.of("myfile.txt"),StandardCharsets.UTF_8);
如果想寫入一個文件,則需要構造一個PrintWriter對象
PrintWriter out = new PrintWriter("myfile.txt",StandardCharsets.UTF_8);
對于這種相對文件名的方式指定的,其實際位置位于Java虛擬機啟動目錄的位置。
需要注意的是,訪問不存在的文件或寫入的文件名不合規則會拋出異常。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态