W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.io.InputStream
|---|---java.io.FileInputStream
public class FileInputStream
extends InputStream
FileInputStream 從文件系統(tǒng)中的文件獲取輸入字節(jié)。 可用的文件取決于主機環(huán)境。
FileInputStream 用于讀取原始字節(jié)流,例如圖像數(shù)據(jù)。 要讀取字符流,請考慮使用 FileReader。
Since:
JDK1.0
構(gòu)造函數(shù) | 描述 |
---|---|
FileInputStream(File file) | 通過打開與實際文件的連接來創(chuàng)建 FileInputStream,該文件由文件系統(tǒng)中的 File 對象文件命名。 |
FileInputStream(FileDescriptor fdObj) | 使用文件描述符 fdObj 創(chuàng)建一個 FileInputStream,它表示與文件系統(tǒng)中實際文件的現(xiàn)有連接。 |
FileInputStream(String name) | 通過打開與實際文件的連接來創(chuàng)建 FileInputStream,該文件由文件系統(tǒng)中的路徑名 name 命名。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
int | available() | 返回可以從此輸入流中讀取(或跳過)的剩余字節(jié)數(shù)的估計值,而不會被下一次調(diào)用此輸入流的方法阻塞。 |
void | close() | 關(guān)閉此文件輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 |
protected void | finalize() | 確保在不再引用此文件輸入流時調(diào)用該文件輸入流的 close 方法。 |
FileChannel | getChannel() | 返回與此文件輸入流關(guān)聯(lián)的唯一 FileChannel 對象。 |
FileDescriptor | getFD() | 返回 FileDescriptor 對象,該對象表示與此 FileInputStream 正在使用的文件系統(tǒng)中的實際文件的連接。 |
int | read() | 從此輸入流中讀取一個字節(jié)的數(shù)據(jù)。 |
int | read(byte[] b) | 從此輸入流中讀取最多 b.length 個字節(jié)的數(shù)據(jù)到字節(jié)數(shù)組中。 |
int | read(byte[] b, int off, int len) | 從此輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 |
long | skip(long n) | 跳過并丟棄輸入流中的 n 字節(jié)數(shù)據(jù)。 |
從類 java.io.InputStream 繼承的方法 |
---|
mark, markSupported, reset |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public FileInputStream(String name) throws FileNotFoundException
通過打開與實際文件的連接來創(chuàng)建 FileInputStream,該文件由文件系統(tǒng)中的路徑名 name 命名。 創(chuàng)建一個新的 FileDescriptor 對象來表示此文件連接。
首先,如果有一個安全管理器,它的 checkRead 方法會以 name 參數(shù)作為它的參數(shù)來調(diào)用。
如果命名文件不存在,是目錄而不是常規(guī)文件,或者由于某些其他原因無法打開讀取,則拋出 FileNotFoundException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
name | 系統(tǒng)相關(guān)的文件名。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
FileNotFoundException | 如果文件不存在,是目錄而不是常規(guī)文件,或者由于某些其他原因無法打開讀取。 |
SecurityException | 如果存在安全管理器并且其 checkRead 方法拒絕對文件的讀取訪問。 |
public FileInputStream(File file) throws FileNotFoundException
通過打開與實際文件的連接來創(chuàng)建 FileInputStream,該文件由文件系統(tǒng)中的 File 對象文件命名。 創(chuàng)建一個新的 FileDescriptor 對象來表示此文件連接。
首先,如果存在安全管理器,則調(diào)用其 checkRead 方法,并將文件參數(shù)表示的路徑作為其參數(shù)。
如果命名文件不存在,是目錄而不是常規(guī)文件,或者由于某些其他原因無法打開讀取,則拋出 FileNotFoundException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
file | 要打開以供閱讀的文件。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
FileNotFoundException | 如果文件不存在,是目錄而不是常規(guī)文件,或者由于某些其他原因無法打開讀取。 |
SecurityException | 如果存在安全管理器并且其 checkRead 方法拒絕對文件的讀取訪問。 |
public FileInputStream(FileDescriptor fdObj)
使用文件描述符 fdObj 創(chuàng)建一個 FileInputStream,它表示與文件系統(tǒng)中實際文件的現(xiàn)有連接。
如果有安全管理器,則調(diào)用它的 checkRead 方法,并以文件描述符 fdObj 作為其參數(shù),以查看是否可以讀取文件描述符。 如果拒絕對文件描述符的讀取訪問,則會引發(fā) SecurityException。
如果 fdObj 為 null,則拋出 NullPointerException。
如果 fdObj 無效,此構(gòu)造函數(shù)不會引發(fā)異常。 但是,如果在結(jié)果流上調(diào)用方法以嘗試對流進行 I/O,則會引發(fā) IOException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fdObj | 要打開以供讀取的文件描述符。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 checkRead 方法拒絕對文件描述符的讀取訪問。 |
public int read() throws IOException
從此輸入流中讀取一個字節(jié)的數(shù)據(jù)。 如果還沒有輸入可用,則此方法會阻塞。
指定者:
讀入類 InputStream
返回:
數(shù)據(jù)的下一個字節(jié),如果到達文件末尾,則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public int read(byte[] b) throws IOException
從此輸入流中讀取最多 b.length 個字節(jié)的數(shù)據(jù)到字節(jié)數(shù)組中。 此方法會阻塞,直到某些輸入可用。
覆蓋:
讀入類 InputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于已到達文件末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public int read(byte[] b, int off, int len) throws IOException
從此輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 如果 len 不為零,則該方法會阻塞,直到某些輸入可用; 否則,不讀取任何字節(jié)并返回 0。
覆蓋:
讀入類 InputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 目標數(shù)組 b 中的起始偏移量 |
len | 讀取的最大字節(jié)數(shù)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于已到達文件末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 b 為空。 |
IndexOutOfBoundsException | 如果 off 為負數(shù),len 為負數(shù),或者 len 大于 b.length - off |
IOException | 如果發(fā)生 I/O 錯誤。 |
public long skip(long n) throws IOException
跳過并丟棄輸入流中的 n 字節(jié)數(shù)據(jù)。
由于各種原因,skip 方法最終可能會跳過一些較小的字節(jié)數(shù),可能為 0。如果 n 為負數(shù),該方法將嘗試向后跳過。 如果支持文件在其當前位置不支持向后跳過,則會引發(fā) IOException。 返回實際跳過的字節(jié)數(shù)。 如果它向前跳過,它會返回一個正值。 如果向后跳過,則返回負值。
此方法可能會跳過比后備文件中剩余的字節(jié)更多的字節(jié)。 這不會產(chǎn)生異常,并且跳過的字節(jié)數(shù)可能包括超出后備文件 EOF 的一些字節(jié)數(shù)。 在跳過結(jié)尾后嘗試從流中讀取將導致 -1 指示文件的結(jié)尾。
覆蓋:
在 InputStream 類中跳過
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 要跳過的字節(jié)數(shù)。 |
返回:
跳過的實際字節(jié)數(shù)。
Throws:
Throw名稱 | Throw模式 |
---|---|
IOException | 如果 n 為負數(shù),如果流不支持查找,或者發(fā)生 I/O 錯誤。 |
public int available() throws IOException
返回可以從此輸入流中讀?。ɑ蛱^)的剩余字節(jié)數(shù)的估計值,而不會被下一次調(diào)用此輸入流的方法阻塞。 當文件位置超出 EOF 時返回 0。 下一次調(diào)用可能是同一個線程或另一個線程。 單次讀取或跳過這么多字節(jié)不會阻塞,但可能會讀取或跳過更少的字節(jié)。
在某些情況下,非阻塞讀?。ɑ蛱^)可能會在其速度較慢時被阻止,例如通過慢速網(wǎng)絡(luò)讀取大文件時。
覆蓋:
在類 InputStream 中可用
返回:
估計可以從該輸入流中讀?。ɑ蛱^)而不會阻塞的剩余字節(jié)數(shù)。
Throws:
Throw名稱 | Throw模式 |
---|---|
IOException | 如果此文件輸入流已通過調(diào)用 close 關(guān)閉或發(fā)生 I/O 錯誤。 |
public void close() throws IOException
關(guān)閉此文件輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
如果此流具有關(guān)聯(lián)的通道,則該通道也將關(guān)閉。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
覆蓋:
在類 InputStream 中關(guān)閉
Throws:
Throw名稱 | Throw模式 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final FileDescriptor getFD() throws IOException
返回 FileDescriptor 對象,該對象表示與此 FileInputStream 正在使用的文件系統(tǒng)中的實際文件的連接。
返回:
與此流關(guān)聯(lián)的文件描述符對象。
Throws:
Throw名稱 | Throw模式 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public FileChannel getChannel()
返回與此文件輸入流關(guān)聯(lián)的唯一 FileChannel 對象。
返回通道的初始位置將等于到目前為止從文件中讀取的字節(jié)數(shù)。 從此流中讀取字節(jié)將增加通道的位置。 顯式或通過讀取更改通道的位置將更改此流的文件位置。
返回:
與此文件輸入流關(guān)聯(lián)的文件通道
Since:
1.4
protected void finalize() throws IOException
確保在不再引用此文件輸入流時調(diào)用該文件輸入流的 close 方法。
覆蓋:
在類 Object 中完成
Throws:
Throw名稱 | Throw模式 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: