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
が負の場合、このメソッドは逆方向へスキップしようとします。バッキング・ファイルが現在位置から逆方向へのスキップをサポートしない場合、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, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。