in是輸出還是輸入,Java基本輸入與輸出

 2023-11-23 阅读 37 评论 0

摘要:標準輸入流 System.in為標準輸入流,需要聯合Scanner類一起使用。 Scanner sc = new Scanner(System.in); Scanner類提供了多種讀取的方式,nextInt讀取下一個整數,nextLine讀取下一行等。 注意:因為此種輸入方式是可見的,所以Scanner類

標準輸入流

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虛擬機啟動目錄的位置。
需要注意的是,訪問不存在的文件或寫入的文件名不合規則會拋出異常。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/187282.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息