Java中鍵盤輸入的幾種常見方式小結(jié)
一、IO流
在Java的輸入中,是以輸入流的形式進(jìn)入程序,因此無法直接指定輸入的類型,僅能讀取鍵盤上的內(nèi)容,返回一個(gè)ASCII碼,所以在使用輸入流的時(shí)候,本質(zhì)是一串ASCII碼,需要將類型強(qiáng)轉(zhuǎn)至char,才能正確顯示。
在Java的IO流中,鍵盤所輸入的會(huì)先存放到緩沖流中,當(dāng)按下Enter鍵的時(shí)候,將緩重流中的數(shù)據(jù)寫入到內(nèi)存中,因?yàn)榇诵再|(zhì),我們無法在鍵盤輸入的過程中直接獲取內(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是等待回車鍵刷取緩存的內(nèi)容,因此此函數(shù)不能吸收回車和換行符,但readLine函數(shù)可以吸收回車和換行。若只是用read函數(shù)可以采用寫兩個(gè)read進(jìn)行吸收回車。
因?yàn)镴ava的異常捕獲機(jī)制,我們需要在函數(shù)的開頭加上throws java.io.IOException
二、Scanner類
從Java5開始,Java引入了Scanner類作為輸入的類型。由上可知,Java的輸入是以流的方式進(jìn)入,只能以字符串的形式進(jìn)入,但Scanner類支持以數(shù)據(jù)類型讀取內(nèi)容。
由于我們是使用Scanner這個(gè)類進(jìn)行輸入控制,因此首先我們需要構(gòu)造出這個(gè)類的對(duì)象。
Scanner input=new Scanner(System.in);
其中Scanner的函數(shù)常見的為.nextxxx,xxx為數(shù)據(jù)類型,若類型為字符串,需要使用.nextLine或者.next。.next相當(dāng)于C/C++中的scanf和cin,遇到空格或回車就停止。.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寫入
以上兩種方法是用的字符輸入流的形式,BufferedReader采用的是緩存輸入流的形式。
同樣,此類在java.io.*內(nèi),因此我們需要在開頭導(dǎo)入包。
import java.io.*;//*表示此目錄下的所有 import java.io.BufferedReader;//直接導(dǎo)入
BufferedReader和正常的io流成員類型基本一致,唯一不同是類的構(gòu)建,BufferedReader需要使用字符輸入流作為基類。
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
到此這篇關(guān)于Java中鍵盤輸入的幾種常見方式小結(jié)的文章就介紹到這了,更多相關(guān)Java 鍵盤輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)SpringBoot項(xiàng)目Jar包進(jìn)行加密防止反編譯
最近項(xiàng)目要求部署到其他公司的服務(wù)器上,但是又不想將源碼泄露出去,要求對(duì)正式環(huán)境的啟動(dòng)包進(jìn)行安全性處理,防止客戶直接通過反編譯工具將代碼反編譯出來,本文介紹了如何對(duì)SpringBoot項(xiàng)目Jar包進(jìn)行加密防止反編譯,需要的朋友可以參考下2023-10-10關(guān)于集合和字符串的互轉(zhuǎn)實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄P(guān)于集合和字符串的互轉(zhuǎn)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08SpringBoot 整合 dubbo xml實(shí)現(xiàn)代碼示例
這篇文章主要介紹了SpringBoot 整合 dubbo xml實(shí)現(xiàn)代碼示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03SpringBoot項(xiàng)目創(chuàng)建單元測(cè)試的流程步驟
在日常開發(fā)的過程中,對(duì)自己的代碼進(jìn)行單元測(cè)試是個(gè)非常重要的過程,一方面可以最小范圍的針對(duì)一個(gè)方法進(jìn)行測(cè)試,提高測(cè)試的簡(jiǎn)便性以及測(cè)試的成本,本篇文章主要是為了總結(jié)一下如何優(yōu)雅的在Springboot項(xiàng)目中使用單元測(cè)試去測(cè)試功能,需要的朋友可以參考下2024-11-11