モジュール java.base
パッケージ java.io

クラスFileInputStream

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によって呼び出す必要があります。 サブクラスは、サブクラスによって獲得されたリソースのクリーンアップを担当します。 クリーンアップを実行するためにObject.finalize()をオーバーライドするサブクラスは、Cleanerなどの代替クリーンアップ・メカニズムを使用し、オーバーライドするfinalizeメソッドを削除するように変更する必要があります。
実装要件:
このFileInputStreamがサブクラス化されていて、close()メソッドがオーバーライドされている場合、FileInputStreamに到達できないときにclose()メソッドが呼び出されます。 それ以外の場合は、close()で説明されているリソース・クリーン・アップがどのように実行されるかは、実装固有のものです。
導入されたバージョン:
1.0
関連項目:
FileFileDescriptorFileOutputStreamFiles.newInputStream(java.nio.file.Path, java.nio.file.OpenOption...)
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    ファイル・システム内のFileオブジェクトfileで指定される実際のファイルへの接続を開くことにより、FileInputStreamを作成します。
    ファイル・システム内の実際のファイルへの既存の接続を表すファイル記述子fdObjを使用して、FileInputStreamを作成します。
    ファイル・システム内のパス名nameで指定される実際のファイルへの接続を開くことにより、FileInputStreamを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    この入力ストリームのメソッドの次の呼出しによって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。
    void
    ファイル入力ストリームを閉じ、このストリームに関連するシステム・リソースを解放します。
    このファイル入力ストリームに関連付けられた一意のFileChannelオブジェクトを返します。
    このFileInputStreamで使用されているファイル・システム内の実際のファイルへの接続を表すFileDescriptorオブジェクトを返します。
    int
    この入力ストリームからデータのバイトを読み込みます。
    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, skipNBytes, transferTo

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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がスローされます。

      fdObjinvalidの場合、このコンストラクタは例外をスローしません。 ただし、結果となるストリームに対してそのストリームへの入出力を試みるメソッドが呼び出された場合は、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 - bnullである場合。
      IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、あるいはlenb.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が負の場合、ストリームがシークをサポートしていない場合、または入出力エラーが発生した場合。
      関連項目:
      InputStream.skipNBytes(long)
    • 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