- java.lang.Object
-
- java.io.InputStream
-
- java.io.FileInputStream
-
- すべての実装されたインタフェース:
Closeable
,AutoCloseable
public class FileInputStream extends InputStream
FileInputStream
は、ファイル・システム内のファイルから入力バイトを取得します。 どのファイルが有効であるかはホスト環境に依存します。FileInputStream
は、イメージ・データなどのrawバイトのストリームを読み込むときに使用します。 文字のストリームを読み込むときは、FileReader
を使用してください。- APIのノート:
- このストリームで使用されるリソースを解放するには、
close()
を直接またはtry-with-resourcesによって呼び出す必要があります。 サブクラスは、サブクラスによって獲得されたリソースのクリーンアップを担当します。 クリーンアップを実行するためにfinalize()
をオーバーライドするサブクラスは、Cleaner
などの代替クリーンアップ・メカニズムを使用し、オーバーライドするfinalize
メソッドを削除するように変更する必要があります。 - 実装要件:
- このFileInputStreamがサブクラス化されていて、
close()
メソッドがオーバーライドされている場合、FileInputStreamに到達できないときにclose()
メソッドが呼び出されます。 それ以外の場合は、close()
で説明されているリソース・クリーン・アップがどのように実行されるかは、実装固有のものです。 - 導入されたバージョン:
- 1.0
- 関連項目:
File
、FileDescriptor
、FileOutputStream
、Files.newInputStream(java.nio.file.Path, java.nio.file.OpenOption...)
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 FileInputStream(File file)
ファイル・システム内のFile
オブジェクトfile
で指定される実際のファイルへの接続を開くことにより、FileInputStream
を作成します。FileInputStream(FileDescriptor fdObj)
ファイル・システム内の実際のファイルへの既存の接続を表すファイル記述子fdObj
を使用して、FileInputStream
を作成します。FileInputStream(String name)
ファイル・システム内のパス名name
で指定される実際のファイルへの接続を開くことにより、FileInputStream
を作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 int
available()
この入力ストリームのメソッドの次の呼出しによって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。void
close()
ファイル入力ストリームを閉じ、このストリームに関連するシステム・リソースを解放します。protected void
finalize()
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。finalize
メソッドは非推奨され、削除されます。FileChannel
getChannel()
このファイル入力ストリームに関連付けられた一意のFileChannel
オブジェクトを返します。FileDescriptor
getFD()
このFileInputStream
で使用されているファイル・システム内の実際のファイルへの接続を表すFileDescriptor
オブジェクトを返します。int
read()
この入力ストリームからデータのバイトを読み込みます。int
read(byte[] b)
最大b.length
バイトのデータを、この入力ストリームからバイト配列に読み込みます。int
read(byte[] b, int off, int len)
最大len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。long
skip(long n)
入力ストリームからn
バイトのデータをスキップして破棄します。-
クラス java.io.InputStreamで宣言されたメソッド
mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, transferTo
-
-
-
-
コンストラクタの詳細
-
FileInputStream
public FileInputStream(String name) throws FileNotFoundException
ファイル・システム内のパス名name
で指定される実際のファイルへの接続を開くことにより、FileInputStream
を作成します。 このファイル接続を表すために、新しいFileDescriptor
オブジェクトが作成されます。まず、セキュリティ・マネージャが存在する場合は、
checkRead
メソッドがname
引数をその引数に指定して呼び出されます。指定されたファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合は、
FileNotFoundException
がスローされます。- パラメータ:
name
- システム依存のファイル名。- 例外:
FileNotFoundException
- ファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合。SecurityException
- セキュリティ・マネージャが存在し、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否した場合。- 関連項目:
SecurityManager.checkRead(java.lang.String)
-
FileInputStream
public FileInputStream(File file) throws FileNotFoundException
ファイル・システム内のFile
オブジェクトfile
で指定される実際のファイルへの接続を開くことにより、FileInputStream
を作成します。 このファイル接続を表すために、新しいFileDescriptor
オブジェクトが作成されます。まず、セキュリティ・マネージャが存在する場合、
checkRead
メソッドが、file
引数で表されるパスをその引数に指定して呼び出されます。指定されたファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合は、
FileNotFoundException
がスローされます。- パラメータ:
file
- 読込みのために開かれるファイル。- 例外:
FileNotFoundException
- ファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合。SecurityException
- セキュリティ・マネージャが存在し、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否した場合。- 関連項目:
File.getPath()
,SecurityManager.checkRead(java.lang.String)
-
FileInputStream
public FileInputStream(FileDescriptor fdObj)
ファイル・システム内の実際のファイルへの既存の接続を表すファイル記述子fdObj
を使用して、FileInputStream
を作成します。セキュリティ・マネージャが存在する場合は、ファイル記述子を読み込んでもよいかどうかを確認するために、ファイル記述子
fdObj
を引数としてcheckRead
メソッドが呼び出されます。 ファイル記述子への読込みアクセスが拒否されると、SecurityException
がスローされます。fdObj
がnullの場合、NullPointerException
がスローされます。fdObj
がinvalid
の場合、このコンストラクタは例外をスローしません。 ただし、結果となるストリームに対してそのストリームへの入出力を試みるメソッドが呼び出された場合は、IOException
がスローされます。- パラメータ:
fdObj
- 読込みのために開かれるファイル記述子。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckRead
メソッドがファイル記述子への読取りアクセスを拒否した場合。- 関連項目:
SecurityManager.checkRead(java.io.FileDescriptor)
-
-
メソッドの詳細
-
read
public int read() throws IOException
この入力ストリームからデータのバイトを読み込みます。 入力がまだ利用できない場合、このメソッドはブロックされます。- 定義:
read
、クラスInputStream
- 戻り値:
- データの次のバイト。ファイルの終わりに達した場合は
-1
。 - 例外:
IOException
- 入出力エラーが発生した場合。
-
read
public int read(byte[] b) throws IOException
最大b.length
バイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、入力の一部が利用できるようになるまでブロックします。- オーバーライド:
read
、クラスInputStream
- パラメータ:
b
- データの読込み先のバッファ。- 戻り値:
- バッファに読み込まれたバイトの合計数。ファイルの終わりに達してデータがない場合は
-1
。 - 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
InputStream.read(byte[], int, int)
-
read
public int read(byte[] b, int off, int len) throws IOException
最大len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。len
が0でない場合、このメソッドは入力の一部が利用できるようになるまでブロックされます。それ以外の場合、バイトは読み込まれず、0
が返されます。- オーバーライド:
read
、クラスInputStream
- パラメータ:
b
- データの読込み先のバッファ。off
- 転送先配列の開始オフセットb
len
- 読み込まれる最大バイト数。- 戻り値:
- バッファに読み込まれたバイトの合計数。ファイルの終わりに達してデータがない場合は
-1
。 - 例外:
NullPointerException
-b
がnull
である場合。IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、あるいはlen
がb.length - off
より大きい場合IOException
- 入出力エラーが発生した場合。- 関連項目:
InputStream.read()
-
skip
public long skip(long n) throws IOException
入力ストリームからn
バイトのデータをスキップして破棄します。さまざまな理由から、
skip
メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0
の場合もあります。n
が負の場合、このメソッドは逆方向へスキップしようとします。 バッキング・ファイルが現在位置から逆方向へのスキップをサポートしない場合、IOException
がスローされます。 スキップされた実際のバイト数が返されます。 前方向へスキップした場合、正の値を返します。 逆方向へスキップした場合、負の値を返します。バッキング・ファイルに残っているバイトより多くのバイトをスキップする場合があります。 この場合、例外は生成されず、スキップされたバイト数には、バッキング・ファイルのEOFを超えたバイト数が含まれる可能性があります。 末尾を超えてスキップしたあとにストリームから読み込もうとすると、ファイルの終わりを示す -1が返されます。
- オーバーライド:
skip
、クラスInputStream
- パラメータ:
n
- スキップされるバイト数。- 戻り値:
- 実際にスキップされたバイト数。
- 例外:
IOException
- nが負の場合、ストリームがシークをサポートしていない場合、または入出力エラーが発生した場合。
-
available
public int available() throws IOException
この入力ストリームのメソッドの次の呼出しによって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。 ファイル位置がEOFを超えるときは0を返します。 次の呼出しは、同じスレッドの場合も別のスレッドの場合もあります。 このような多数のバイトを1回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。場合によっては、ブロックのない読み込み(またはスキップ)は、単に処理が遅いときにブロックされているように見えることがあります。たとえば、低速のネットワークを介して大容量のファイルを読み込む場合などです。
- オーバーライド:
available
、クラスInputStream
- 戻り値:
- ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数。
- 例外:
IOException
-close
の呼出しによって、このファイル入力ストリームが閉じられた場合、または入出力エラーが発生した場合。
-
close
public void close() throws IOException
ファイル入力ストリームを閉じ、このストリームに関連するシステム・リソースを解放します。このストリームにチャネルが関連付けられている場合は、そのチャネルも閉じます。
- 定義:
close
、インタフェースAutoCloseable
- 定義:
close
、インタフェースCloseable
- オーバーライド:
close
、クラスInputStream
- APIのノート:
- クリーンアップ・アクションを実行するための
close()
のオーバーライドは、直接呼び出されたとき、またはtry-with-resourcesによって呼び出されたときにのみ信頼できます。close
を呼び出すファイナライズに依存しないでください。ファイナライズは信頼できず、推奨されなくなりました。 ネイティブ・リソースのクリーンアップが必要な場合は、Cleanerなどの他のメカニズムを使用する必要があります。 - 例外:
IOException
- 入出力エラーが発生した場合。
-
getFD
public final FileDescriptor getFD() throws IOException
このFileInputStream
で使用されているファイル・システム内の実際のファイルへの接続を表すFileDescriptor
オブジェクトを返します。- 戻り値:
- このストリームに関連するファイル記述子オブジェクト。
- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
FileDescriptor
-
getChannel
public FileChannel getChannel()
このファイル入力ストリームに関連付けられた一意のFileChannel
オブジェクトを返します。返されるチャネルの初期
position
は、それまでにファイルから読み込まれたバイト数と等しくなります。 このストリームからバイトを読み込むとチャネルの位置が増分されます。 チャネルの位置が明示的に変更された場合、または読み込みよって変更された場合は、このストリームのファイル位置が変更されます。- 戻り値:
- このファイル入力ストリームに関連付けられているファイル・チャネル
- 導入されたバージョン:
- 1.4
-
finalize
@Deprecated(since="9", forRemoval=true) protected void finalize() throws IOException
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。finalize
メソッドは非推奨され、削除されます。 クリーンアップを実行するためにfinalize
をオーバーライドするサブクラスは、代替クリーンアップ・メカニズムを使用し、オーバーライドするfinalize
メソッドを削除するように変更する必要があります。finalize
メソッドをオーバーライドする場合、実装では、super.finalize()
がObject.finalize()
の説明に従って呼び出されることを明示的に確認する必要があります。 移行オプションの詳細については、Object.finalize()
の仕様を参照してください。このファイル入力ストリームのclose()
メソッドが、それへの参照がなくなったときに呼び出されるようにします。finalize()
メソッドはclose()
を直接呼び出しません。- オーバーライド:
finalize
、クラスObject
- APIのノート:
- このストリームで使用されるリソースを解放するには、
close()
を直接またはtry-with-resourcesによって呼び出す必要があります。 - 実装要件:
- このFileInputStreamがサブクラス化されていて、
close()
メソッドがオーバーライドされている場合、FileInputStreamに到達できないときにclose()
メソッドが呼び出されます。 それ以外の場合は、close()
で説明されているリソース・クリーン・アップがどのように実行されるかは、実装固有のものです。 - 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
close()
-
-