Java使用Scanner類進(jìn)行文件的讀取方式
使用Scanner類進(jìn)行文件的讀取
Scanner類在java.util.Scanner包中,Scanner類可以用來獲取控制臺(tái)的輸入,也可以用來對(duì)文件的讀取。之所以可以這樣,是因?yàn)樘峁┝藰?gòu)造函數(shù)重載。
1.獲取控制臺(tái)的輸入。輸入5個(gè)數(shù)字。
import java.util.Scanner; public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); for (int i = 0; i <= 5; i++) { int temp = sc.nextInt(); //sc.nextInt()可以獲取一個(gè)輸入的數(shù)字 System.out.println(temp); } } }
輸出效果:
2.對(duì)于文件的讀取。
首先我們?cè)陧?xiàng)目下創(chuàng)建一個(gè)test.txt。內(nèi)容為:
我們對(duì)其進(jìn)行讀取。
首先new一個(gè)Scanner類,其中傳入?yún)?shù)為文件的路徑。
File file = new File("test.txt"); Scanner sc = new Scanner(file);
其次,就是使用Scanner對(duì)象中hasNext()方法來判斷文件是否讀取完畢,另外一個(gè)就是用來獲取控制臺(tái)輸入的nextLine(),nextInt()等方法來獲取文本的信息,非常類似于自己在控制臺(tái)輸入的數(shù)據(jù)變成了文本內(nèi)容,給Scanner對(duì)象獲取。
while(sc.hasNext()) { String temp = sc.nextLine(); System.out.println(temp); }
這個(gè)時(shí)候就可以實(shí)現(xiàn)文本讀取了。
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class test { public static void main(String[] args) { try { File file = new File("test.txt"); // System.out.println(file.getAbsolutePath()); Scanner sc = new Scanner(file); while (sc.hasNext()) { String temp = sc.nextLine(); System.out.println(temp); } } catch (FileNotFoundException e) { e.printStackTrace(); } } }
輸出效果和test.txt的內(nèi)容一樣。
Java讀取輸入各類信息(Scanner)
想要實(shí)現(xiàn)讀取信息功能需要用到Scanner類
Scanner類
Scanner是SDK1.5新增的一個(gè)類,可是使用該類創(chuàng)建一個(gè)對(duì)象.。想要通過控制臺(tái)進(jìn)行輸入,首先需要構(gòu)造一個(gè)Scanner對(duì)象,并與“標(biāo)準(zhǔn)輸入流”System.in關(guān)聯(lián)。
也就是說要構(gòu)建自己使用的對(duì)象才能夠?qū)崿F(xiàn)賦值
Scanner myscan = new Scanner(System.in); //以int行為例; int test = myscan.nextInt();
同時(shí)要注意在類外需要調(diào)用Scanner庫
import java.util.Scanner;
此外不同的類型還需要使用不同的后綴名
import java.util.Scanner; public class input { ? ? public static void main(String[] args){ ? ? ? ? Scanner myscn = new Scanner(System.in); ? ? ? ? //steing型 ? ? ? ? String name = myscn.next(); ? ? ? ? //int型 ? ? ? ? int age = myscn.nextInt(); ? ? ? ? //double型 ? ? ? ? double score = myscn.nextDouble(); ? ? ? ? //char型 ? ? ? ? char num = myscn.next().charAt(0); ? ? } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java SpringMVC攔截器與異常處理機(jī)制詳解分析
SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡化開發(fā),SpringMVC也是要簡化我們?nèi)粘eb開發(fā)2021-10-10同時(shí)使用@LoadBalanced?@RefreshScope注解負(fù)載均衡失效分析
這篇文章主要為大家介紹了同時(shí)使用@LoadBalanced?@RefreshScope負(fù)載均衡失效問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Spring?Security?自定義授權(quán)服務(wù)器實(shí)踐記錄
授權(quán)服務(wù)器(Authorization Server)目前并沒有集成在Spring Security項(xiàng)目中,而是作為獨(dú)立項(xiàng)目存在于Spring生態(tài)中,這篇文章主要介紹了Spring?Security?自定義授權(quán)服務(wù)器實(shí)踐,需要的朋友可以參考下2022-08-08Mybatis實(shí)現(xiàn)一對(duì)一、一對(duì)多關(guān)聯(lián)查詢的方法(示例詳解)
這篇文章主要介紹了Mybatis實(shí)現(xiàn)一對(duì)一、一對(duì)多關(guān)聯(lián)查詢的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Java創(chuàng)建圖形用戶界面(GUI)入門詳細(xì)指南(Swing庫JFrame類)
這篇文章主要介紹了使用Java?Swing庫的JFrame類創(chuàng)建基本的圖形用戶界面,包括窗口的創(chuàng)建、組件的添加和事件處理,通過代碼講解了如何設(shè)置窗口大小、添加按鈕及處理按鈕點(diǎn)擊事件,適合初學(xué)者學(xué)習(xí)和開發(fā)GUI應(yīng)用程序,需要的朋友可以參考下2024-11-11springboot項(xiàng)目配置swagger2示例詳解
Swagger是一款RESTful接口的文檔在線自動(dòng)生成、功能測(cè)試功能框架。本文重點(diǎn)給大家介紹springboot項(xiàng)目配置swagger2示例代碼詳解,需要的朋友參考下吧2021-09-09Redisson分布式閉鎖RCountDownLatch的使用詳細(xì)講解
分布式鎖和我們java基礎(chǔ)中學(xué)習(xí)到的synchronized略有不同,synchronized中我們的鎖是個(gè)對(duì)象,當(dāng)前系統(tǒng)部署在不同的服務(wù)實(shí)例上,單純使用synchronized或者lock已經(jīng)無法滿足對(duì)庫存一致性的判斷。本次主要講解基于rediss實(shí)現(xiàn)的分布式鎖2023-02-02