java.lang.Objectjava.io.InputStream
java.io.FileInputStream
public class FileInputStream
FileInputStream
從文件系統(tǒng)中的某個文件中獲取輸入字節(jié)。哪些文件可用取決于主機(jī)環(huán)境。
FileInputStream
用于讀取諸如圖像數(shù)據(jù)之類的原始字節(jié)流。要讀取字符流,請考慮使用 FileReader
。
File
, FileDescriptor
, FileOutputStream
構(gòu)造方法摘要 | |
---|---|
FileInputStream(File file) 通過打開一個到實(shí)際文件的連接來創(chuàng)建一個 FileInputStream ,該文件通過文件系統(tǒng)中的 File 對象 file 指定。 | |
FileInputStream(FileDescriptor fdObj) 通過使用文件描述符 fdObj 創(chuàng)建一個 FileInputStream ,該文件描述符表示到文件系統(tǒng)中某個實(shí)際文件的現(xiàn)有連接。 | |
FileInputStream(String name) 通過打開一個到實(shí)際文件的連接來創(chuàng)建一個 FileInputStream ,該文件通過文件系統(tǒng)中的路徑名 name 指定。 |
方法摘要 | |
---|---|
int | available() 返回可以不受阻塞地從此文件輸入流中讀取的字節(jié)數(shù)。 |
void | close() 關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)資源。 |
protected void | finalize() 確保在不再引用文件輸入流時調(diào)用其 close 方法。 |
FileChannel | getChannel() 返回與此文件輸入流有關(guān)的惟一 FileChannel 對象。 |
FileDescriptor | getFD() 返回表示到文件系統(tǒng)中實(shí)際文件的連接的 FileDescriptor 對象,該文件系統(tǒng)正被此 FileInputStream 使用。 |
int | read() 從此輸入流中讀取一個數(shù)據(jù)字節(jié)。 |
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 |
構(gòu)造方法詳細(xì)信息 |
---|
public FileInputStream(String name) throws FileNotFoundException
FileInputStream
,該文件通過文件系統(tǒng)中的路徑名 name
指定。創(chuàng)建一個新 FileDescriptor
對象來表示此文件連接。首先,如果有安全管理器,則用 name
作為參數(shù)調(diào)用其 checkRead
方法。
如果指定文件不存在,或者它是一個目錄,而不是一個常規(guī)文件,抑或因?yàn)槠渌承┰蚨鵁o法打開進(jìn)行讀取,則拋出 FileNotFoundException
。
name
- 與系統(tǒng)有關(guān)的文件名。FileNotFoundException
- 如果該文件不存在,或者它是一個目錄,而不是一個常規(guī)文件,抑或因?yàn)槠渌承┰蚨鵁o法打開進(jìn)行讀取。SecurityException
- 如果存在安全管理器,且其 checkRead
方法拒絕對文件進(jìn)行讀取訪問。SecurityManager.checkRead(java.lang.String)
public FileInputStream(File file) throws FileNotFoundException
FileInputStream
,該文件通過文件系統(tǒng)中的 File
對象 file
指定。創(chuàng)建一個新 FileDescriptor
對象來表示此文件連接。首先,如果有安全管理器,則用 file
參數(shù)表示的路徑作為參數(shù)調(diào)用其 checkRead
方法。
如果指定文件不存在,或者它是一個目錄,而不是一個常規(guī)文件,抑或因?yàn)槠渌承┰蚨鵁o法打開進(jìn)行讀取,則拋出 FileNotFoundException
。
file
- 為了進(jìn)行讀取而打開的文件。FileNotFoundException
- 如果該文件不存在,或者它是一個目錄,而不是一個常規(guī)文件,抑或因?yàn)槠渌承┰蚨鵁o法打開進(jìn)行讀取。SecurityException
- 如果存在安全管理器,且其 checkRead
方法拒絕對文件進(jìn)行讀取訪問。File.getPath()
, SecurityManager.checkRead(java.lang.String)
public FileInputStream(FileDescriptor fdObj)
fdObj
創(chuàng)建一個 FileInputStream
,該文件描述符表示到文件系統(tǒng)中某個實(shí)際文件的現(xiàn)有連接。首先,如果有安全管理器,則用文件描述符 fdObj
作為參數(shù)調(diào)用其 checkRead
方法,以查看它是否可以讀取該文件描述符。如果拒絕對該文件描述符進(jìn)行讀取訪問,則拋出 SecurityException
。
如果 fdObj
為 null,則拋出 NullPointerException
。
fdObj
- 為了進(jìn)行讀取而打開的文件描述符。SecurityException
- 如果存在安全管理器,且其 checkRead
方法拒絕對文件描述符進(jìn)行讀取訪問SecurityManager.checkRead(java.io.FileDescriptor)
方法詳細(xì)信息 |
---|
public int read() throws IOException
InputStream
中的 read
-1
。IOException
- 如果發(fā)生 I/O 錯誤。public int read(byte[] b) throws IOException
b.length
個字節(jié)的數(shù)據(jù)讀入一個字節(jié)數(shù)組中。在某些輸入可用之前,此方法將阻塞。
InputStream
中的 read
b
- 存儲讀取數(shù)據(jù)的緩沖區(qū)。-1
。IOException
- 如果發(fā)生 I/O 錯誤。InputStream.read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
個字節(jié)的數(shù)據(jù)讀入一個字節(jié)數(shù)組中。在某些輸入可用之前,此方法將阻塞。
InputStream
中的 read
b
- 存儲讀取數(shù)據(jù)的緩沖區(qū)。off
- 數(shù)據(jù)的起始偏移量。len
- 讀取的最大字節(jié)數(shù)。-1
。IOException
- 如果發(fā)生 I/O 錯誤。InputStream.read()
public long skip(long n) throws IOException
n
個字節(jié)的數(shù)據(jù)。出于各種原因,skip
方法最終跳過的字節(jié)數(shù)可能更少一些,甚至可能為 0
。如果 n
為負(fù),則拋出 IOException
,即使 InputStream
超類的 skip
方法在這種情況下沒有執(zhí)行任何操作。返回實(shí)際跳過的字節(jié)數(shù)。
此方法跳過的字節(jié)可能多于底層文件中剩余的字節(jié)。這不會產(chǎn)生異常,并且跳過的字節(jié)數(shù)可能包括底層文件的 EOF(文件結(jié)束符)之后的一些字節(jié)數(shù)。如果試圖在跳過末尾之后讀取流,那么會返回指示文件末尾的 -1。
InputStream
中的 skip
n
- 要跳過的字節(jié)數(shù)。IOException
- 如果 n 為負(fù),或者發(fā)生 I/O 錯誤。public int available() throws IOException
InputStream
中的 available
IOException
- 如果發(fā)生 I/O 錯誤。public void close() throws IOException
如果此流有一個與之關(guān)聯(lián)的通道,則關(guān)閉該通道。
Closeable
中的 close
InputStream
中的 close
IOException
- 如果發(fā)生 I/O 錯誤。public final FileDescriptor getFD() throws IOException
FileDescriptor
對象,該文件系統(tǒng)正被此 FileInputStream
使用。
IOException
- 如果發(fā)生 I/O 錯誤。FileDescriptor
public FileChannel getChannel()
FileChannel
對象。 所返回通道的初始 position
將等于到目前為止從文件中讀取的字節(jié)數(shù)。從此流中讀取的字節(jié)會使通道的位置遞增。顯式地或通過讀取來更改通道的位置會更改此流的文件位置。
protected void finalize() throws IOException
close
方法。
Object
中的 finalize
IOException
- 如果發(fā)生 I/O 錯誤。close()