使用輸入流通常包括4個(gè)基本步驟:
(1) 設(shè)定輸入流的源
(2) 創(chuàng)建指向源的輸入流
(3) 讓輸入流讀取源中的數(shù)據(jù)
(4) 關(guān)閉輸入流
那么我們這一節(jié)通過學(xué)習(xí)文件字節(jié)輸入流熟悉一下上述4個(gè)基本步驟。
如果對(duì)文件讀取需求比較簡單,那么可以使用FileInputStream類(文件字節(jié)輸入流),該類是InputStream類的子類(以字節(jié)為單位讀取文件),該類的實(shí)例方法都是從InputStream類繼承來的。
我們可以使用FileInputStream類的下列構(gòu)造方法創(chuàng)建指向文件的輸入流。
FileInputStream(String name); FileInputStream(File file);
第一個(gè)構(gòu)造方法使用給定的文件名name創(chuàng)建FileInputStream流;第二個(gè)構(gòu)造方法使用File對(duì)象創(chuàng)建FileInputStream流。參數(shù)name和file指定的文件稱為輸入流的源。
FileInputStream輸入流打開一個(gè)到達(dá)文件的通道(源就是這個(gè)文件,輸入流指向這個(gè)文件)。當(dāng)創(chuàng)建輸入流時(shí),可能會(huì)出現(xiàn)錯(cuò)誤(也被稱為異常)。例如,輸入流指向的文件可能不存在。
當(dāng)出現(xiàn)I/O錯(cuò)誤,Java生成一個(gè)出錯(cuò)信號(hào),它使用IOException(IO異常)對(duì)象來表示這個(gè)出錯(cuò)信號(hào)。程序必須在try-catch語句中的try塊部分創(chuàng)建輸入流,在catch塊部分檢測并處理這個(gè)異常。例如,為了讀取一個(gè)名為hello.txt的文件,建立一個(gè)文件輸入流in。
try { FileInputStream in = new FileInputStream("hello.txt"); //創(chuàng)建指向文件hello.txt的輸入流 } catch(IOException e) { System.out.println("File read error:"+e); }
或
File f = new File("hello.txt"); //指定輸入流的源 try { FileInputStream in = new FileInputstream(f); //創(chuàng)建指向源的輸入流 } catch(IOException e) { System.out.println("File read error:"+e); }
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程