public class FileInputStream extends InputStream
FileInputStream
は、ファイルシステム内のファイルから入力バイトを取得します。どのファイルが有効であるかはホスト環境に依存します。
FileInputStream
は、イメージデータなどの raw バイトのストリームを読み込むときに使用します。文字のストリームを読み込むときは、FileReader
を使用してください。
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()
ファイル入力ストリームへの参照が存在しなくなったときに、このストリームの
close メソッドが確実に呼び出されるようにします。 |
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 バイトのデータをスキップして破棄します。 |
mark, markSupported, reset
public FileInputStream(String name) throws FileNotFoundException
name
で指定される実際のファイルへの接続を開くことにより、FileInputStream
を作成します。このファイル接続を表すために、新しい FileDescriptor
オブジェクトが作成されます。
まず、セキュリティーマネージャーが存在する場合は、checkRead
メソッドが name
引数をその引数に指定して呼び出されます。
指定されたファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合は、FileNotFoundException
がスローされます。
name
- システム依存のファイル名。FileNotFoundException
- ファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合。SecurityException
- セキュリティーマネージャーが存在し、その checkRead
メソッドがファイルへの読み取りアクセスを拒否した場合。SecurityManager.checkRead(java.lang.String)
public FileInputStream(File file) throws FileNotFoundException
File
オブジェクト file
で指定される実際のファイルへの接続を開くことにより、FileInputStream
を作成します。このファイル接続を表すために、新しい FileDescriptor
オブジェクトが作成されます。
まず、セキュリティーマネージャーが存在する場合、checkRead
メソッドが、file
引数で表されるパスをその引数に指定して呼び出されます。
指定されたファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合は、FileNotFoundException
がスローされます。
file
- 読み込みのために開かれるファイル。FileNotFoundException
- ファイルが存在しないか、通常ファイルではなくディレクトリであるか、またはなんらかの理由で開くことができない場合。SecurityException
- セキュリティーマネージャーが存在し、その checkRead
メソッドがファイルへの読み取りアクセスを拒否した場合。File.getPath()
, SecurityManager.checkRead(java.lang.String)
public FileInputStream(FileDescriptor fdObj)
fdObj
を使用して、FileInputStream
を作成します。
セキュリティーマネージャーが存在する場合は、ファイル記述子を読み込んでもよいかどうかを確認するために、ファイル記述子 fdObj
を引数として checkRead
メソッドが呼び出されます。ファイル記述子への読み込みアクセスが拒否されると、SecurityException
がスローされます。
fdObj
が null の場合、NullPointerException
がスローされます。
fdObj
が invalid
の場合、このコンストラクタは例外をスローしません。ただし、結果となるストリームに対してそのストリームへの入出力を試みるメソッドが呼び出された場合は、IOException
がスローされます。
fdObj
- 読み込みのために開かれるファイル記述子。SecurityException
- セキュリティーマネージャーが存在し、その checkRead
メソッドがファイル記述子への読み取りアクセスを拒否した場合。SecurityManager.checkRead(java.io.FileDescriptor)
public int read() throws IOException
read
、クラス: InputStream
-1
。IOException
- 入出力エラーが発生した場合。public int read(byte[] b) throws IOException
b.length
バイトのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、入力の一部が利用できるようになるまでブロックします。read
、クラス: InputStream
b
- データの読み込み先のバッファー。-1
。IOException
- 入出力エラーが発生した場合。InputStream.read(byte[], int, int)
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()
public long skip(long n) throws IOException
n
バイトのデータをスキップして破棄します。
さまざまな理由から、skip
メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0
の場合もあります。n
が負の場合、InputStream
スーパークラスの skip
メソッドはこの場合何も行ないませんが、IOException
がスローされます。スキップされた実際のバイト数が返されます。
このメソッドによってスキップされるバイト数が、バッキングファイル内の残りのバイト数より多い場合があります。この場合、例外は生成されず、スキップされたバイト数には、バッキングファイルの EOF を超えたバイト数が含まれる可能性があります。末尾を超えてスキップしたあとにストリームから読み込もうとすると、ファイルの終わりを示す -1 が返されます。
skip
、クラス: InputStream
n
- スキップされるバイト数。IOException
- n が負の場合、ストリームがシークをサポートしていない場合、または入出力エラーが発生した場合。public int available() throws IOException
場合によっては、ブロックのない読み込み (またはスキップ) は、単に処理が遅いときにブロックされているように見えることがあります。たとえば、低速のネットワークを介して大容量のファイルを読み込む場合などです。
available
、クラス: InputStream
IOException
- close
の呼び出しによって、このファイル入力ストリームが閉じられた場合、または入出力エラーが発生した場合。public void close() throws IOException
このストリームにチャネルが関連付けられている場合は、そのチャネルも閉じます。
close
、インタフェース: Closeable
close
、インタフェース: AutoCloseable
close
、クラス: InputStream
IOException
- 入出力エラーが発生した場合。public final FileDescriptor getFD() throws IOException
FileInputStream
で使用されているファイルシステム内の実際のファイルへの接続を表す FileDescriptor
オブジェクトを返します。IOException
- 入出力エラーが発生した場合。FileDescriptor
public FileChannel getChannel()
FileChannel
オブジェクトを返します。
返されたチャネルの position
の初期値は、それまでにファイルから読み込まれたバイト数と等しくなります。このストリームからバイトを読み込むとチャネルの位置が増分されます。チャネルの位置が明示的に変更された場合、または読み込みよって変更された場合は、このストリームのファイル位置が変更されます。
protected void finalize() throws IOException
close
メソッドが確実に呼び出されるようにします。finalize
、クラス: Object
IOException
- 入出力エラーが発生した場合。close()
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.