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

クラスFileOutputStream

java.lang.Object
java.io.OutputStream
java.io.FileOutputStream
すべての実装されたインタフェース:
Closeable, Flushable, AutoCloseable

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

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

APIのノート:
このストリームで使用されるリソースを解放するには、close()を直接またはtry-with-resourcesによって呼び出す必要があります。 サブクラスは、サブクラスによって獲得されたリソースのクリーンアップを担当します。 クリーンアップを実行するためにObject.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()
    ファイル出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。
    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)
    指定されたバイトをこのファイル出力ストリームに書き込みます。

    クラス java.io.OutputStreamで宣言されたメソッド

    flush, nullOutputStream

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

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • コンストラクタの詳細

    • 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