Java中鍵盤(pán)輸入的幾種常見(jiàn)方式小結(jié)
一、IO流
在Java的輸入中,是以輸入流的形式進(jìn)入程序,因此無(wú)法直接指定輸入的類(lèi)型,僅能讀取鍵盤(pán)上的內(nèi)容,返回一個(gè)ASCII碼,所以在使用輸入流的時(shí)候,本質(zhì)是一串ASCII碼,需要將類(lèi)型強(qiáng)轉(zhuǎn)至char,才能正確顯示。
在Java的IO流中,鍵盤(pán)所輸入的會(huì)先存放到緩沖流中,當(dāng)按下Enter鍵的時(shí)候,將緩重流中的數(shù)據(jù)寫(xiě)入到內(nèi)存中,因?yàn)榇诵再|(zhì),我們無(wú)法在鍵盤(pán)輸入的過(guò)程中直接獲取內(nèi)容。
class InputDemo {
public static void main(String[] args)
throws java.io.IOException{
int input;
input=(int) System.in.read();
System.out.println(input);
}
}當(dāng)我們輸入t tt,此時(shí)輸出的值為其ASCII碼116 116116,當(dāng)我們將里面的i n t intint改為c h a r charchar,程序?qū)⒄o@示出字母t tt。
class InputDemo {
public static void main(String[] args)
throws java.io.IOException{
char input;
input=(char) System.in.read();
System.out.println(input);
}
}在System.io.read()函數(shù)中,read是等待回車(chē)鍵刷取緩存的內(nèi)容,因此此函數(shù)不能吸收回車(chē)和換行符,但readLine函數(shù)可以吸收回車(chē)和換行。若只是用read函數(shù)可以采用寫(xiě)兩個(gè)read進(jìn)行吸收回車(chē)。
因?yàn)镴ava的異常捕獲機(jī)制,我們需要在函數(shù)的開(kāi)頭加上throws java.io.IOException
二、Scanner類(lèi)
從Java5開(kāi)始,Java引入了Scanner類(lèi)作為輸入的類(lèi)型。由上可知,Java的輸入是以流的方式進(jìn)入,只能以字符串的形式進(jìn)入,但Scanner類(lèi)支持以數(shù)據(jù)類(lèi)型讀取內(nèi)容。
由于我們是使用Scanner這個(gè)類(lèi)進(jìn)行輸入控制,因此首先我們需要構(gòu)造出這個(gè)類(lèi)的對(duì)象。
Scanner input=new Scanner(System.in);
其中Scanner的函數(shù)常見(jiàn)的為.nextxxx,xxx為數(shù)據(jù)類(lèi)型,若類(lèi)型為字符串,需要使用.nextLine或者.next。.next相當(dāng)于C/C++中的scanf和cin,遇到空格或回車(chē)就停止。.nextLine相對(duì)于C/C++中的gets。
class InputDemo {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
String in=input.next();
System.out.println(in);
}
}三 、BufferedReader寫(xiě)入
以上兩種方法是用的字符輸入流的形式,BufferedReader采用的是緩存輸入流的形式。
同樣,此類(lèi)在java.io.*內(nèi),因此我們需要在開(kāi)頭導(dǎo)入包。
import java.io.*;//*表示此目錄下的所有 import java.io.BufferedReader;//直接導(dǎo)入
BufferedReader和正常的io流成員類(lèi)型基本一致,唯一不同是類(lèi)的構(gòu)建,BufferedReader需要使用字符輸入流作為基類(lèi)。
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
到此這篇關(guān)于Java中鍵盤(pán)輸入的幾種常見(jiàn)方式小結(jié)的文章就介紹到這了,更多相關(guān)Java 鍵盤(pán)輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot使JUL實(shí)現(xiàn)日志管理功能
這篇文章主要介紹了springboot使JUL實(shí)現(xiàn)日志管理功能,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫(xiě)法
這篇文章主要介紹了詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫(xiě)法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟
這篇文章主要給大家介紹了關(guān)于spring boot項(xiàng)目打包成war在tomcat運(yùn)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
java使用任務(wù)架構(gòu)執(zhí)行任務(wù)調(diào)度示例
在Java 5.0之前啟動(dòng)一個(gè)任務(wù)是通過(guò)調(diào)用Thread類(lèi)的start()方法來(lái)實(shí)現(xiàn)的,5.0里提供了一個(gè)新的任務(wù)執(zhí)行架構(gòu)使你可以輕松地調(diào)度和控制任務(wù)的執(zhí)行,并且可以建立一個(gè)類(lèi)似數(shù)據(jù)庫(kù)連接池的線程池來(lái)執(zhí)行任務(wù),下面看一個(gè)示例2014-01-01
java實(shí)戰(zhàn)案例之用戶注冊(cè)并發(fā)送郵件激活/發(fā)送郵件驗(yàn)證碼
現(xiàn)在很多的網(wǎng)站都提供有用戶注冊(cè)功能,當(dāng)我們注冊(cè)成功之后就會(huì)收到封注冊(cè)網(wǎng)站的郵件,郵件里包含了我們的注冊(cè)的用戶名和密碼及激活賬戶的超鏈接等信息,這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)案例之用戶注冊(cè)并發(fā)送郵件激活/發(fā)送郵件驗(yàn)證碼的相關(guān)資料,需要的朋友可以參考下2021-09-09
SpringBoot3使用Apache Tika實(shí)現(xiàn)多格式文件內(nèi)容提取
做后端開(kāi)發(fā)久了,難免碰到這類(lèi)剛需:用戶上傳Word、PDF、Excel、Txt各種文檔,后臺(tái)得自動(dòng)扒出文本做內(nèi)容審核、全文檢索或者數(shù)據(jù)庫(kù)歸檔,所以本文使用 Apache Tika 搞定全格式解析,需要的朋友可以參考下2026-03-03
配置pom.xml用maven打包java工程的方法(推薦)
下面小編就為大家?guī)?lái)一篇配置pom.xml用maven打包java工程的方法(推薦)。小編覺(jué)得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)的示例代碼
本文主要介紹了springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

