Java獲取控制臺輸入的兩種方法小結(jié)
Java獲取控制臺輸入的方法
在學習網(wǎng)絡編程中,有需要從控制臺輸入數(shù)據(jù),進行兩個線程之間的通信,其中,涉及到了讀取控制臺輸入的兩種不同的操作,筆者在這里進行記錄,以供大家分享。
方法一、InputStreamReader
- 本身只能單個字符地讀取數(shù)據(jù)
- 通過BufferedStreamReader包裝后,存在緩存,支持整行整行地讀取數(shù)據(jù)
- 只能讀取字符/字符串,如想獲取其他類型的數(shù)據(jù),仍需要進行類型轉(zhuǎn)換
檢測實例如下:
? ? public static User getUser2() throws IOException {
? ? ? ? BufferedReader br = new
? ? ? ? ? ? ? ? BufferedReader(new InputStreamReader(System.in));
? ? ? ? System.out.println("請輸入賬號");
? ? ? ? String username = br.readLine();
? ? ? ? System.out.println("請輸入密碼");
? ? ? ? String password = br.readLine();
? ? ? ? br.close();
? ? ? ? return new User(username,password);
? ? }方法二、Scanner
在獲取控制臺輸入的方法中,創(chuàng)建Scanner對象來獲取是最佳的方法,其有以下優(yōu)勢:
- 可以獲取各種類型的數(shù)據(jù),如String、Int、Float等,且不需要進行轉(zhuǎn)換
- 支持諸多的文本掃描內(nèi)容,如hasNextLine()方法可以檢測是否存在下一行數(shù)據(jù)等
檢測實例如下:
? ? public static User getUser(){
? ? ? ? Scanner scanner = new Scanner(System.in);
? ? ? ? System.out.println("請輸入賬號");
? ? ? ? String username = scanner.nextLine();
? ? ? ? System.out.println("請輸入密碼");
? ? ? ? String password = scanner.nextLine();
? ? ? ? return new User(username,password);
? ? }Java接收控制臺輸入
1.接收整數(shù)類型輸入
public static void main(String[] args) {
java.util.Scanner sc=new Scanner(System.in);
?? ??? ?System.out.println("請輸入將要計算階乘的整數(shù)n:");
?? ??? ?int n=sc.nextInt(); //接收整數(shù)類型輸入
?? ??? ?sc.close();
}2.接收字符串類型輸入
public static void main(String[] args) {
?? ??? ?java.util.Scanner sc=new java.util.Scanner(System.in);
?? ??? ?System.out.println("請輸入需要判斷是否為十進制的數(shù)字");
?? ??? ?String n=sc.nextLine();//接收字符串
?? ??? ?sc.close();
}3.接收單個字符輸入
法一》直接獲取一個字符
?public static void main(String[] args) throws Exception //注意拋出異常?
{
?? ??? ?java.util.Scanner sc=new java.util.Scanner(System.in);
?? ??? ?System.out.println("請輸入一個字符:");
?? ??? ?
?? ??? ? char n=(char)System.in.read(); //直接獲取一個字符
? ? ? ? ?sc.close();
}法二》先接收一個字符串,再接收其第一個字符
public static void main(String[] args) ?//注意 throws Exception可以不寫
{
?? ??? ?java.util.Scanner sc=new java.util.Scanner(System.in);
?? ??? ?System.out.println("請輸入一個字符:");
?? ??? ?char n=sc.next().charAt(0);//先從控制臺接收字符串,再接收它的第一個字符
?? ??? ?sc.close();
}以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決idea中javaweb的mysql8.0.15配置問題
這篇文章主要介紹了idea中javaweb的mysql8.0.15配置問題 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
java Executors工具類的相關(guān)方法使用創(chuàng)建
這篇文章主要為大家介紹了java Executors工具類的相關(guān)方法使用創(chuàng)建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解
這篇文章主要介紹了Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07
Spring Boot熱加載jar實現(xiàn)動態(tài)插件的思路
本文主要介紹在 Spring Boot 工程中熱加載 jar 包并注冊成為 Bean 對象的一種實現(xiàn)思路,在動態(tài)擴展功能的同時支持在插件中注入主程序的 Bean 實現(xiàn)功能更強大的插件2021-10-10
springboot + JPA 配置雙數(shù)據(jù)源實戰(zhàn)
這篇文章主要介紹了springboot + JPA 配置雙數(shù)據(jù)源實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

