モジュール java.base
パッケージ 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
    関連項目:
    FileFileDescriptorFileOutputStreamFiles.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バイトのデータをスキップして破棄します。
    • コンストラクタの詳細

      • 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が負の場合、ストリームがシークをサポートしていない場合、または入出力エラーが発生した場合。
      • 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()