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

クラスFileOutputStream

  • すべての実装されたインタフェース:
    Closeable, Flushable, AutoCloseable

    public class FileOutputStream
    extends OutputStream
    ファイル出力ストリームは、FileまたはFileDescriptorにデータを書き込むための出力ストリームです。 ファイルが使用可能であるかどうか、またはファイルを作成できるかどうかは、ベースとなるプラットフォームによって決まります。 特に、一部のプラットフォームでは、1つのファイルは同時に1つのFileOutputStream (またはその他のファイル書込みオブジェクト)だけによって書込みのために開くことができます。 このような場合、該当のファイルがすでに開かれていると、このクラスのコンストラクタは失敗します。

    FileOutputStreamは、イメージ・データなどのrawバイトのストリームを書き込むときに使用します。 文字のストリームを書き込むときは、FileWriterを使用してください。

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

      コンストラクタ 
      コンストラクタ 説明
      FileOutputStream​(File file)
      指定されたFileオブジェクトによって表されるファイルに書き込むためのファイル出力ストリームを作成します。
      FileOutputStream​(FileDescriptor fdObj)
      ファイル・システムの実際のファイルへの既存の接続を表す、指定されたファイル記述子に書き込むためのファイル出力ストリームを作成します。
      FileOutputStream​(File file, boolean append)
      指定されたFileオブジェクトによって表されるファイルに書き込むためのファイル出力ストリームを作成します。
      FileOutputStream​(String name)
      指定された名前のファイルに書き込むためのファイル出力ストリームを作成します。
      FileOutputStream​(String name, boolean append)
      指定された名前のファイルに書き込むためのファイル出力ストリームを作成します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 
      修飾子と型 メソッド 説明
      void close()
      ファイル出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。
      protected void finalize()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      finalizeメソッドは非推奨され、削除されます。
      FileChannel getChannel()
      このファイル出力ストリームに関連付けられた一意のFileChannelオブジェクトを返します。
      FileDescriptor getFD()
      ストリームに関連したファイル記述子を返します。
      void write​(byte[] b)
      指定されたバイト配列のb.lengthバイトをこのファイル出力ストリームに書き込みます。
      void write​(byte[] b, int off, int len)
      指定されたバイト配列のオフセット位置offから始まるlenバイトをこのファイル出力ストリームに書き込みます。
      void write​(int b)
      指定されたバイトをこのファイル出力ストリームに書き込みます。
    • コンストラクタの詳細

      • FileOutputStream

        public FileOutputStream​(String name)
                         throws FileNotFoundException
        指定された名前のファイルに書き込むためのファイル出力ストリームを作成します。 このファイル接続を表すために、新しいFileDescriptorオブジェクトが作成されます。

        まず、セキュリティ・マネージャが存在する場合は、checkWriteメソッドがnameをその引数に指定して呼び出されます。

        ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合は、FileNotFoundExceptionがスローされます。

        実装要件:
        このコンストラクタをパラメータnameで呼び出すことは、new FileOutputStream(name, false)を呼び出すことと同じです。
        パラメータ:
        name - システムに依存するファイル名
        例外:
        FileNotFoundException - ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合
        SecurityException - セキュリティ・マネージャが存在し、そのcheckWriteメソッドがファイルへの書込みアクセスを拒否した場合。
        関連項目:
        SecurityManager.checkWrite(java.lang.String)
      • FileOutputStream

        public FileOutputStream​(String name,
                                boolean append)
                         throws FileNotFoundException
        指定された名前のファイルに書き込むためのファイル出力ストリームを作成します。 2番目の引数がtrueの場合、バイトはファイルの先頭ではなく最後に書き込まれます。 このファイル接続を表すために、新しいFileDescriptorオブジェクトが作成されます。

        まず、セキュリティ・マネージャが存在する場合は、checkWriteメソッドがnameをその引数に指定して呼び出されます。

        ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合は、FileNotFoundExceptionがスローされます。

        パラメータ:
        name - システム依存のファイル名
        append - trueの場合、バイトはファイルの先頭ではなく最後に書き込まれる
        例外:
        FileNotFoundException - ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合。
        SecurityException - セキュリティ・マネージャが存在し、そのcheckWriteメソッドがファイルへの書込みアクセスを拒否した場合。
        導入されたバージョン:
        1.1
        関連項目:
        SecurityManager.checkWrite(java.lang.String)
      • FileOutputStream

        public FileOutputStream​(File file)
                         throws FileNotFoundException
        指定されたFileオブジェクトによって表されるファイルに書き込むためのファイル出力ストリームを作成します。 このファイル接続を表すために、新しいFileDescriptorオブジェクトが作成されます。

        まず、セキュリティ・マネージャが存在する場合、checkWriteメソッドが、file引数で表されるパスをその引数に指定して呼び出されます。

        ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合は、FileNotFoundExceptionがスローされます。

        パラメータ:
        file - 書込み用に開かれるファイル。
        例外:
        FileNotFoundException - ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合
        SecurityException - セキュリティ・マネージャが存在し、そのcheckWriteメソッドがファイルへの書込みアクセスを拒否した場合。
        関連項目:
        File.getPath()SecurityException, SecurityManager.checkWrite(java.lang.String)
      • FileOutputStream

        public FileOutputStream​(File file,
                                boolean append)
                         throws FileNotFoundException
        指定されたFileオブジェクトによって表されるファイルに書き込むためのファイル出力ストリームを作成します。 2番目の引数がtrueの場合、バイトはファイルの先頭ではなく最後に書き込まれます。 このファイル接続を表すために、新しいFileDescriptorオブジェクトが作成されます。

        まず、セキュリティ・マネージャが存在する場合、checkWriteメソッドが、file引数で表されるパスをその引数に指定して呼び出されます。

        ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合は、FileNotFoundExceptionがスローされます。

        パラメータ:
        file - 書込み用に開かれるファイル。
        append - trueの場合、バイトはファイルの先頭ではなく最後に書き込まれる
        例外:
        FileNotFoundException - ファイルが存在するが通常ファイルではなくディレクトリである場合、存在せず作成もできない場合、またはなんらかの理由で開くことができない場合
        SecurityException - セキュリティ・マネージャが存在し、そのcheckWriteメソッドがファイルへの書込みアクセスを拒否した場合。
        導入されたバージョン:
        1.4
        関連項目:
        File.getPath()SecurityException, SecurityManager.checkWrite(java.lang.String)
      • FileOutputStream

        public FileOutputStream​(FileDescriptor fdObj)
        ファイル・システムの実際のファイルへの既存の接続を表す、指定されたファイル記述子に書き込むためのファイル出力ストリームを作成します。

        まず、セキュリティ・マネージャが存在する場合、checkWriteメソッドが、ファイル記述子fdObj引数を引数として呼び出されます。

        fdObjがnullの場合、NullPointerExceptionがスローされます。

        fdObjinvalidの場合、このコンストラクタは例外をスローしません。 ただし、結果となるストリームに対してそのストリームへの入出力を試みるメソッドが呼び出された場合は、IOExceptionがスローされます。

        パラメータ:
        fdObj - 書込みのために開かれるファイル記述子
        例外:
        SecurityException - セキュリティ・マネージャが存在し、そのcheckWriteメソッドがファイル記述子への書込みアクセスを拒否した場合
        関連項目:
        SecurityManager.checkWrite(java.io.FileDescriptor)
    • メソッドの詳細

      • write

        public void write​(int b)
                   throws IOException
        指定されたバイトをこのファイル出力ストリームに書き込みます。 OutputStreamwriteメソッドを実装します。
        定義:
        write、クラス: OutputStream
        パラメータ:
        b - 書き込まれるバイト。
        例外:
        IOException - 入出力エラーが発生した場合。
      • write

        public void write​(byte[] b)
                   throws IOException
        指定されたバイト配列のb.lengthバイトをこのファイル出力ストリームに書き込みます。
        オーバーライド:
        write、クラス: OutputStream
        パラメータ:
        b - データ。
        例外:
        IOException - 入出力エラーが発生した場合。
        関連項目:
        OutputStream.write(byte[], int, int)
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws IOException
        指定されたバイト配列のオフセット位置offから始まるlenバイトをこのファイル出力ストリームに書き込みます。
        オーバーライド:
        write、クラス: OutputStream
        パラメータ:
        b - データ。
        off - データの開始オフセット。
        len - 書き込むバイト数。
        例外:
        IOException - 入出力エラーが発生した場合。
      • close

        public void close()
                   throws IOException
        ファイル出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。 以降は、このファイル出力ストリームをバイトの書込みに使用することはできません。

        このストリームにチャネルが関連付けられている場合は、そのチャネルも閉じます。

        定義:
        close、インタフェース: AutoCloseable
        定義:
        close、インタフェース: Closeable
        オーバーライド:
        close、クラス: OutputStream
        APIの注:
        クリーンアップ・アクションを実行するためのclose()のオーバーライドは、直接呼び出されたとき、またはtry-with-resourcesによって呼び出されたときにのみ信頼できます。 closeを呼び出すファイナライズに依存しないでください。ファイナライズは信頼できず、推奨されなくなりました。 ネイティブ・リソースのクリーンアップが必要な場合は、Cleanerなどの他のメカニズムを使用する必要があります。
        例外:
        IOException - 入出力エラーが発生した場合。
      • getFD

        public final FileDescriptor getFD()
                                   throws IOException
        ストリームに関連したファイル記述子を返します。
        戻り値:
        このFileOutputStreamオブジェクトによって使用されているファイル・システムのファイルへの接続を表す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によって呼び出す必要があります。
        実装要件:
        このFileOutputStreamがサブクラス化されていて、close()メソッドがオーバーライドされている場合、FileOutputStreamに到達できないときにclose()メソッドが呼び出されます。 それ以外の場合は、close()で説明されているリソース・クリーン・アップがどのように実行されるかは、実装固有のものです。
        例外:
        IOException - 入出力エラーが発生した場合。
        関連項目:
        FileInputStream.close()