十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
小編給大家分享一下Java中FileInputStream指的是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

FileInputStream是從文件系統(tǒng)中的文件中獲取字節(jié),至于什么文件,取決于主機環(huán)境,F(xiàn)ileInputStream用于讀取原始字節(jié)流,如圖像數(shù)據(jù),假如想要讀取字符類型流,請使用FileReader。
FileInputStream是繼承于InputStream,首先FileInputStream有三個構(gòu)造函數(shù);分別是
FileInputStream(File file) // 構(gòu)造函數(shù)1:創(chuàng)建“File對象”對應(yīng)的“文件輸入流”
FileInputStream(FileDescriptor fd) // 構(gòu)造函數(shù)2:創(chuàng)建“文件描述符”對應(yīng)的“文件輸入流”
FileInputStream(String path) // 構(gòu)造函數(shù)3:創(chuàng)建“文件(路徑為path)”對應(yīng)的“文件輸入流”
用法:



總結(jié):通過這三種構(gòu)造函數(shù)可以FileInputStream(FileDescriptor fd)是和通過構(gòu)造函數(shù)1和構(gòu)造函數(shù)3獲得的實例是同一個實例
public int read() //從此輸入流中讀取一個數(shù)據(jù)字節(jié)
public int read(byte b[]) //從此輸入流中讀取多個字節(jié)到byte數(shù)組中
public int read(byte b[], int off, int len) //從此輸入流中讀取最多l(xiāng)en個字節(jié)到byte數(shù)組中
測試read()


代碼實現(xiàn)中很簡單,一個try中調(diào)用本地native的read0()方法,直接從文件輸入流中讀取一個字節(jié)
測試read(byte b[])


代碼實現(xiàn)也是比較簡單的,也是一個try中調(diào)用本地native的readBytes()方法,直接從文件輸入流中讀取最多b.length個字節(jié)到byte數(shù)組b中
測試 read(byte b[], int off, int len)


代碼實現(xiàn)和 int read(byte b[])方法 一樣,直接從文件輸入流中讀取最多l(xiāng)en個字節(jié)到byte數(shù)組b中。
int available() // 返回“剩余的可讀取的字節(jié)數(shù)”或者“skip的字節(jié)數(shù)” 一個本地的方法

根據(jù)這個方法,可以有效的創(chuàng)建byte[]數(shù)組實例,實現(xiàn)大化利用內(nèi)存空間,在Java的世界里,一個中文占3個字節(jié),一個中文標(biāo)題符號,同樣也是占有3個字節(jié)。
long skip(long byteCount) // 跳過byteCount個字節(jié) 本地方法


void close()// 關(guān)閉“文件輸入流”
看完了這篇文章,相信你對Java中FileInputStream指的是什么有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!