モジュール java.base
パッケージ java.nio.file

クラスFiles

java.lang.Object
java.nio.file.Files

public final class Files extends Object
このクラスは、ファイル、ディレクトリ、またはその他の種類のファイルを操作するstaticメソッドだけで構成されます。

ほとんどの場合、ここで定義されているメソッドは関連付けられたファイル・システム・プロバイダにファイル操作の実行を委譲します。

導入されたバージョン:
1.7
  • メソッドの詳細

    • newInputStream

      public static InputStream newInputStream(Path path, OpenOption... options) throws IOException
      ファイルを開き、そのファイルから読み取る入力ストリームを返します。 そのストリームはバッファに入れられないため、markまたはresetメソッドをサポートしている必要はありません。 ストリームは複数の並行スレッドからのアクセスに対して安全です。 読取りはファイルの最初から始まります。 返されるストリームが非同期クローズ可能または割込み可能、あるいはその両方かどうかは、ファイル・システム・プロバイダによって大きく異なるため、未指定です。

      optionsパラメータはファイルを開く方法を決定します。 オプションが1つも存在しない場合、それはREADオプションでファイルを開くことと同等です。 実装では、 READオプションのほかに、追加の実装固有のオプションをサポートすることもあります。

      パラメータ:
      path - 開くファイルへのパス
      options - ファイルを開く方法を指定するオプション
      戻り値:
      新しい入力ストリーム
      例外:
      IllegalArgumentException - オプションの無効な組み合わせが指定された場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
    • newOutputStream

      public static OutputStream newOutputStream(Path path, OpenOption... options) throws IOException
      ファイルを開くか作成して、そのファイルにバイトを書き込むために使用できる出力ストリームを返します。 結果となるストリームはバッファに入れられません。 ストリームは複数の並行スレッドからのアクセスに対して安全です。 返されるストリームが非同期クローズ可能または割込み可能、あるいはその両方かどうかは、ファイル・システム・プロバイダによって大きく異なるため、未指定です。

      このメソッドは、オプションの配列にREADオプションが含まれない可能性があることを除いては、newByteChannelメソッドで指定されたとおりにファイルを開くか作成します。 オプションがない場合、このメソッドはCREATETRUNCATE_EXISTING、およびWRITEオプションがあるかのように機能します。 つまり、書込み用にファイルを開きます(存在しない場合は作成し、存在する場合は最初に既存の通常ファイルをサイズ0に切り詰めます)。

      使用例:

           Path path = ...
      
           // truncate and overwrite an existing file, or create the file if
           // it doesn't initially exist
           OutputStream out = Files.newOutputStream(path);
      
           // append to an existing file, fail if the file does not exist
           out = Files.newOutputStream(path, APPEND);
      
           // append to an existing file, create file if it doesn't initially exist
           out = Files.newOutputStream(path, CREATE, APPEND);
      
           // always create new file, failing if it already exists
           out = Files.newOutputStream(path, CREATE_NEW);
       

      パラメータ:
      path - 開くまたは作成するファイルへのパス
      options - ファイルを開く方法を指定するオプション
      戻り値:
      新しい出力ストリーム
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定されている場合、(optional specific exception)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
    • newByteChannel

      public static SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
      ファイルを開くか作成し、そのファイルにアクセスするためのシーク可能なバイト・チャネルを返します。

      optionsパラメータはファイルを開く方法を決定します。 READWRITEオプションにより、ファイルを読み取りまたは書込みで開くべきかどうかが決定されます。 いずれのオプション(またはAPPENDオプション)も存在しない場合、ファイルは読取り用に開かれます。 デフォルトでは、読み取りまたは書込みはファイルの先頭から始まります。

      READおよびWRITE以外に、次のオプションが存在する場合があります。

      オプション
      オプション 説明
      APPEND このオプションが存在する場合は、ファイルは書込みのために開かれ、チャネルのwriteメソッドの各呼出しは、まず位置をファイルの終わりに進めてから要求されたデータを書き込みます。 このような位置の移動とデータの書込みは、不可分な単一の操作として行われます。この操作は、システムに依存しているため未指定です。 このオプションは、READまたはTRUNCATE_EXISTINGオプションと同時には使用できません。
      TRUNCATE_EXISTING このオプションが存在する場合は、既存のファイルはサイズが0バイトに切り詰められます。 このオプションは、ファイルを読取り専用に開いた場合は無視されます。
      CREATE_NEW このオプションが存在する場合は、新しいファイルが作成され、ファイルがすでに存在するか、シンボリック・リンクである場合は失敗します。 ファイルの作成時に、ファイルがあるかどうかのチェックや、ない場合のファイルの生成は、ほかのファイル・システムの操作に対して原子的です。 このオプションは、ファイルを読取り専用に開いた場合は無視されます。
      CREATE このオプションが存在する場合は、既存のファイルが存在する場合はそれが開かれ、そうでない場合は新しいファイルが作成されます。 このオプションは、CREATE_NEWオプションも存在する場合またはファイルを読取り専用に開いた場合は無視されます。
      DELETE_ON_CLOSE このオプションが存在する場合、実装は、ファイルがcloseメソッドによって閉じられるときに、ベスト・エフォートでファイルを削除しようとします。 closeメソッドが呼び出されない場合、Java仮想マシンの終了時にファイルを削除するためのベスト・エフォートの試みが行われます。
      SPARSE 新しいファイルの作成時に、このオプションは新しいファイルがスパースであることのヒントになります。 このオプションは、新しいファイルを作成しない場合は無視されます。
      SYNC ファイルの内容またはメタデータの更新は、基本となる記憶装置に同期的に書き込まれることを必要とします。(「同期入出力ファイル整合性」を参照)。
      DSYNC ファイルの内容の更新は、基本となる記憶装置に同期的に書き込まれることを必要とします。(「同期入出力ファイル整合性」を参照)。

      実装では、追加の実装固有のオプションをサポートすることもあります。

      attrsパラメータは、新しいファイルの作成時に原子的に設定するオプションのファイル属性です。

      デフォルト・プロバイダの場合、返されるシーク可能なバイト・チャネルはFileChannelです。

      使用例:

      
           Path path = ...
      
           // open file for reading
           ReadableByteChannel rbc = Files.newByteChannel(path, EnumSet.of(READ)));
      
           // open file for writing to the end of an existing file, creating
           // the file if it doesn't already exist
           WritableByteChannel wbc = Files.newByteChannel(path, EnumSet.of(CREATE,APPEND));
      
           // create file with initial permissions, opening it for both reading and writing
           FileAttribute<Set<PosixFilePermission>> perms = ...
           SeekableByteChannel sbc =
               Files.newByteChannel(path, EnumSet.of(CREATE_NEW,READ,WRITE), perms);
       

      パラメータ:
      path - 開くまたは作成するファイルへのパス
      options - ファイルを開く方法を指定するオプション
      attrs - ファイルの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      新しいシーク可能なバイト・チャネル
      例外:
      IllegalArgumentException - セットにオプションの無効な組み合わせが含まれる場合
      UnsupportedOperationException - 未サポートのオープン・オプションが指定された場合またはファイルの作成時に原子的に設定できない属性が配列に含まれる場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定され、そのファイルが「(optional specific exception)の書き込みのために開かれている場合」
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ファイルが読取り用に開かれるとcheckReadメソッドが呼び出されてパスへの読取りアクセスがチェックされます。 ファイルが書込み用に開かれた場合は、checkWriteメソッドが呼び出されてパスへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      関連項目:
    • newByteChannel

      public static SeekableByteChannel newByteChannel(Path path, OpenOption... options) throws IOException
      ファイルを開くか作成し、そのファイルにアクセスするためのシーク可能なバイト・チャネルを返します。

      このメソッドは、newByteChannelメソッドで指定されたとおりにファイルを開くか作成します。

      パラメータ:
      path - 開くまたは作成するファイルへのパス
      options - ファイルを開く方法を指定するオプション
      戻り値:
      新しいシーク可能なバイト・チャネル
      例外:
      IllegalArgumentException - セットにオプションの無効な組み合わせが含まれる場合
      UnsupportedOperationException - サポートされていないオープン・オプションが指定された場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定され、そのファイルが「(optional specific exception)の書き込みのために開かれている場合」
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ファイルが読取り用に開かれるとcheckReadメソッドが呼び出されてパスへの読取りアクセスがチェックされます。 ファイルが書込み用に開かれた場合は、checkWriteメソッドが呼び出されてパスへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      関連項目:
    • newDirectoryStream

      public static DirectoryStream<Path> newDirectoryStream(Path dir) throws IOException
      ディレクトリを開き、ディレクトリ内のすべてのエントリを反復するためのDirectoryStreamを返します。 ディレクトリ・ストリームのiteratorによって返される要素は、 Path型で、それぞれがディレクトリ内のエントリを表します。 Pathオブジェクトは、dirに対してディレクトリ・エントリの名前を解決したかのように取得されます。

      try-with-resources構文を使用しない場合は、ディレクトリ・ストリームのcloseメソッドは、開いているディレクトリのために保持されているリソースを解放するために、反復が完了したあとに呼び出されるべきです。

      ディレクトリ内のエントリに対して競合のない方法で実行する操作を実装がサポートする場合は、返されるディレクトリ・ストリームはSecureDirectoryStreamです。

      パラメータ:
      dir - ディレクトリへのパス
      戻り値:
      新しく開かれたDirectoryStreamオブジェクト
      例外:
      NotDirectoryException - ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
    • newDirectoryStream

      public static DirectoryStream<Path> newDirectoryStream(Path dir, String glob) throws IOException
      ディレクトリを開き、そのディレクトリ内のエントリに対して反復処理を行うDirectoryStreamを返します。 ディレクトリ・ストリームのiteratorによって返される要素は、 Path型で、それぞれがディレクトリ内のエントリを表します。 Pathオブジェクトは、dirに対してディレクトリ・エントリの名前を解決したかのように取得されます。 イテレータによって返されるエントリは、そのファイル名のString表現を指定されたグロッビング・パターンと照合することでフィルタ処理されます。

      たとえば、ディレクトリ内の「.java」で終わるファイルすべてについて反復処理を行うとします。

           Path dir = ...
           try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.java")) {
               :
           }
       

      グロッビング・パターンは、getPathMatcherメソッドによって指定されます。

      try-with-resources構文を使用しない場合は、ディレクトリ・ストリームのcloseメソッドは、開いているディレクトリのために保持されているリソースを解放するために、反復が完了したあとに呼び出されるべきです。

      ディレクトリ内のエントリに対して競合のない方法で実行する操作を実装がサポートする場合は、返されるディレクトリ・ストリームはSecureDirectoryStreamです。

      パラメータ:
      dir - ディレクトリへのパス
      glob - globパターン
      戻り値:
      新しく開かれたDirectoryStreamオブジェクト
      例外:
      PatternSyntaxException - パターンが無効な場合
      NotDirectoryException - ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
    • newDirectoryStream

      public static DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter) throws IOException
      ディレクトリを開き、そのディレクトリ内のエントリに対して反復処理を行うDirectoryStreamを返します。 ディレクトリ・ストリームのiteratorによって返される要素は、 Path型で、それぞれがディレクトリ内のエントリを表します。 Pathオブジェクトは、dirに対してディレクトリ・エントリの名前を解決したかのように取得されます。 イテレータによって返されるエントリは、指定されたフィルタによってフィルタ処理されます。

      try-with-resources構文を使用しない場合は、ディレクトリ・ストリームのcloseメソッドは、開いているディレクトリのために保持されているリソースを解放するために、反復が完了したあとに呼び出されるべきです。

      キャッチされないエラーまたは実行時例外のためにフィルタが終了した場合は、hasNextまたはnextメソッドにそれが通知されます。 IOExceptionがスローされると、hasNextまたは nextメソッドがIOExceptionを原因としてDirectoryIteratorExceptionをスローします。

      ディレクトリ内のエントリに対して競合のない方法で実行する操作を実装がサポートする場合は、返されるディレクトリ・ストリームはSecureDirectoryStreamです。

      使用例: ディレクトリ内の8Kよりも大きいファイルすべてについて反復処理を行うとします。

           DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
               public boolean accept(Path file) throws IOException {
                   return (Files.size(file) > 8192L);
               }
           };
           Path dir = ...
           try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) {
               :
           }
       

      パラメータ:
      dir - ディレクトリへのパス
      filter - ディレクトリ・ストリーム・フィルタ
      戻り値:
      新しく開かれたDirectoryStreamオブジェクト
      例外:
      NotDirectoryException - ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
    • createFile

      public static Path createFile(Path path, FileAttribute<?>... attrs) throws IOException
      新しい空のファイルを作成し、ファイルがすでに存在する場合は失敗します。 ファイルがあるかどうかのチェックや、ない場合の新しいファイルの作成は、そのディレクトリに影響を与える可能性のあるほかのすべてのファイル・システム・アクティビティに対して原子的である単一の操作です。

      attrsパラメータは、ファイルの作成時に原子的に設定するオプションのファイル属性です。 各属性はそのnameで識別されます。 配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。

      パラメータ:
      path - 作成するファイルへのパス
      attrs - ファイルの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      ファイル
      例外:
      UnsupportedOperationException - ファイルの作成時に原子的に設定できない属性が配列に含まれる場合
      FileAlreadyExistsException - その名前のファイルがすでに存在する場合は、(optional specific exception)
      IOException - 入出力エラーが発生した場合または親ディレクトリが存在しない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されて新しいファイルへの書込みアクセスがチェックされます。
    • createDirectory

      public static Path createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException
      新しいディレクトリを作成します。 ファイルがあるかどうかのチェックや、ない場合のディレクトリの作成は、そのディレクトリに影響を与える可能性のあるほかのすべてのファイル・システム・アクティビティに対して原子的である単一の操作です。 存在しないすべての親ディレクトリを最初に作成する必要がある場合は、createDirectoriesメソッドを使用するようにしてください。

      attrsパラメータは、ディレクトリの作成時に原子的に設定するオプションのファイル属性です。 各属性はそのnameで識別されます。 配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。

      パラメータ:
      dir - 作成するディレクトリ
      attrs - ディレクトリの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      ディレクトリ
      例外:
      UnsupportedOperationException - ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合
      FileAlreadyExistsException - その名前のファイルがすでに存在するためにディレクトリを作成できなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合または親ディレクトリが存在しない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されて新しいディレクトリへの書込みアクセスがチェックされます。
    • createDirectories

      public static Path createDirectories(Path dir, FileAttribute<?>... attrs) throws IOException
      存在しないすべての親ディレクトリをまず作成することで、ディレクトリを作成します。 createDirectoryメソッドとは異なり、ディレクトリがすでに存在しているために作成できなかった場合でも例外はスローされません。

      attrsパラメータは、存在しないディレクトリの作成時に原子的に設定するオプションのファイル属性です。 各ファイル属性はそのnameで識別されます。 配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。

      このメソッドが失敗する場合は、親ディレクトリの一部(すべてではない)を作成したあとにそうなることがあります。

      パラメータ:
      dir - 作成するディレクトリ
      attrs - ディレクトリの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      ディレクトリ
      例外:
      UnsupportedOperationException - ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合
      FileAlreadyExistsException - dirが存在するが、ディレクトリではない場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ディレクトリの作成を試みる前にcheckWriteメソッドが呼び出され、チェックされる親ディレクトリごとに、そのcheckReadメソッドが呼び出されます。 dirが絶対パスでない場合は、そのtoAbsolutePathを呼び出してその絶対パスを取得することが必要になることがあります。 これによって、セキュリティ・マネージャのcheckPropertyAccessメソッドが呼び出されて、システム・プロパティuser.dirへのアクセスがチェックされることがあります。
    • createTempFile

      public static Path createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs) throws IOException
      指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。 結果のPathは指定されたディレクトリと同じFileSystemに関連付けられます。

      ファイル名の生成方法に関する詳細は、実装に依存しているため、特定できません。 可能な場合は、prefixおよびsuffixを使用して、File.createTempFile(String,String,File)メソッドと同じ方法で候補の名前が生成されます。

      File.createTempFileメソッドと同様に、このメソッドは一時ファイル機能の一部に過ぎません。 「作業ファイル」として使用される場合は、適切なcloseメソッドが呼び出されたときにファイルが削除されるように、DELETE_ON_CLOSEオプションを使用して結果ファイルを開くことができます。 あるいは、shutdown-hook、またはFile.deleteOnExit()メカニズムを使用してファイルを自動的に削除することもできます。

      attrsパラメータは、ファイルの作成時に原子的に設定するオプションのファイル属性です。 各属性はそのnameで識別されます。 配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。 ファイル属性が1つも指定されない場合、結果となるファイルはFile.createTempFile(String,String,File)メソッドで作成されたファイルよりアクセス権が制限されることがあります。

      パラメータ:
      dir - ファイルが作成されるディレクトリへのパス
      prefix - ファイル名を生成するために使用される接頭辞文字列。nullも可能です
      suffix - ファイル名を生成するために使用される接尾辞文字列。nullも指定でき、その場合は、接尾辞".tmp"が使用されます。
      attrs - ファイルの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      このメソッドの呼出し前には存在しなかった、新しく作成されたファイルへのパス
      例外:
      IllegalArgumentException - 候補のファイル名を生成するためにprefixまたはsuffixパラメータを使用できない場合
      UnsupportedOperationException - ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合
      IOException - 入出力エラーが発生した場合またはdirが存在しない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。
    • createTempFile

      public static Path createTempFile(String prefix, String suffix, FileAttribute<?>... attrs) throws IOException
      指定された接頭辞と接尾辞をファイル名の生成に使用して、デフォルトの一時ファイル・ディレクトリに空のファイルを生成します。 結果の PathはデフォルトのFileSystemに関連付けられています。

      このメソッドは、dirパラメータが一時ファイル・ディレクトリの場合は、createTempFile(Path,String,String,FileAttribute[])メソッドによって指定されたとおりに機能します。

      パラメータ:
      prefix - ファイル名を生成するために使用される接頭辞文字列。nullも可能です
      suffix - ファイル名を生成するために使用される接尾辞文字列。nullも指定でき、その場合は、接尾辞".tmp"が使用されます。
      attrs - ファイルの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      このメソッドの呼出し前には存在しなかった、新しく作成されたファイルへのパス
      例外:
      IllegalArgumentException - 候補のファイル名を生成するためにprefixまたはsuffixパラメータを使用できない場合
      UnsupportedOperationException - ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合
      IOException - 入出力エラーが発生した場合または一時ファイル・ディレクトリが存在しない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。
    • createTempDirectory

      public static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs) throws IOException
      指定されたディレクトリで新しいディレクトリを生成し、その名前には、指定された接頭辞が使用されます。 結果のPathは指定されたディレクトリと同じFileSystemに関連付けられます。

      ディレクトリ名の生成方法に関する詳細は、実装に依存しているため、特定できません。 可能な場合は、prefixを使用して候補の名前が生成されます。

      createTempFileメソッドと同様に、このメソッドは一時ファイル機能の一部に過ぎません。 shutdown-hook、またはFile.deleteOnExit()メカニズムを使用すると、ディレクトリを自動的に削除できます。

      attrsパラメータは、ディレクトリの作成時に原子的に設定するオプションのファイル属性です。 各属性はそのnameで識別されます。 配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。

      パラメータ:
      dir - ディレクトリが作成されるディレクトリへのパス
      prefix - ディレクトリ名を生成するために使用される接頭辞文字列。nullも可能です
      attrs - ディレクトリの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      このメソッドの呼出し前には存在しなかった、新しく作成されたディレクトリへのパス
      例外:
      IllegalArgumentException - 候補のディレクトリ名を生成するためにprefixを使用できない場合
      UnsupportedOperationException - ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合
      IOException - 入出力エラーが発生した場合またはdirが存在しない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ディレクトリの作成時にcheckWriteメソッドが呼び出されて書込みアクセスがチェックされます。
    • createTempDirectory

      public static Path createTempDirectory(String prefix, FileAttribute<?>... attrs) throws IOException
      デフォルトの一時ファイル・ディレクトリで新しいディレクトリを生成し、その名前には、指定された接頭辞が使用されます。 結果のPathはデフォルトのFileSystemに関連付けられています。

      このメソッドは、dirパラメータが一時ファイル・ディレクトリの場合は、createTempDirectory(Path,String,FileAttribute[])メソッドによって指定されたとおりに機能します。

      パラメータ:
      prefix - ディレクトリ名を生成するために使用される接頭辞文字列。nullも可能です
      attrs - ディレクトリの作成時に原子的に設定されるファイル属性のオプションのリスト
      戻り値:
      このメソッドの呼出し前には存在しなかった、新しく作成されたディレクトリへのパス
      例外:
      IllegalArgumentException - 候補のディレクトリ名を生成するためにprefixを使用できない場合
      UnsupportedOperationException - ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合
      IOException - 入出力エラーが発生した場合または一時ファイル・ディレクトリが存在しない場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ディレクトリの作成時にcheckWriteメソッドが呼び出されて書込みアクセスがチェックされます。
    • createSymbolicLink

      public static Path createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs) throws IOException
      ターゲットへのシンボリック・リンクを作成します(オプションの操作)

      targetパラメータは、そのリンクのターゲットです。 それは絶対または相対パスにすることができ、存在しないこともあります。 ターゲットが相対パスである場合、結果となるリンクに対するファイル・システム操作は、そのリンクのパスを基準にして行われます。

      attrsパラメータは、リンクの作成時に原子的に設定するオプションの属性です。 各属性はそのnameで識別されます。 配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。

      シンボリック・リンクがサポートされているが、ベースとなるFileStoreがシンボリック・リンクをサポートしていない場合、これはIOExceptionで失敗することがあります。 また、一部のオペレーティング・システムではシンボリック・リンクを作成するためにJava仮想マシンを実装固有の特権で起動することが必要なことがあり、その場合はこのメソッドによってIOExceptionがスローされることがあります。

      パラメータ:
      link - 作成するシンボリック・リンクへのパス
      target - シンボリック・リンクのターゲット
      attrs - シンボリック・リンクの作成時に原子的に設定される属性の配列
      戻り値:
      シンボリック・リンクへのパス
      例外:
      UnsupportedOperationException - 実装がシンボリック・リンクをサポートしない場合、またはシンボリック・リンクの作成時に原子的に設定できない属性が配列に含まれる場合
      FileAlreadyExistsException - その名前のファイルがすでに存在する場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがLinkPermission("symbolic")を拒否するか、またはそのcheckWriteメソッドがシンボリック・リンクのパスへの書込みアクセスを拒否する場合。
    • createLink

      public static Path createLink(Path link, Path existing) throws IOException
      既存のファイルに対して新しいリンク(ディレクトリ・エントリ)を作成します(オプションの操作)

      linkパラメータは、作成するディレクトリ・エントリを検出します。 existingパラメータは、既存のファイルへのパスです。 このメソッドは、そのファイルの新しいディレクトリ・エントリを作成することで、linkをパスとして使用してそれにアクセスできるようにします。 一部のファイル・システムでは、これは「ハード・リンク」の作成として知られています。 ファイル属性がそのファイルのために保持されるか、またはディレクトリ・エントリごとに保持されるかは、ファイル・システムに固有であるため、特定できません。 通常、ファイル・システムでは、1つのファイルのすべてのリンク(ディレクトリ・エントリ)が同じファイル・システム上にある必要があります。 さらに、一部のプラットフォームでは、ハード・リンクを作成するか、ディレクトリへのリンクを作成するためにJava仮想マシンを実装固有の特権で起動することが必要な場合もあります。

      パラメータ:
      link - 作成するリンク(ディレクトリ・エントリ)
      existing - 既存のファイルへのパス
      戻り値:
      リンク(ディレクトリ・エントリ)へのパス
      例外:
      UnsupportedOperationException - 実装が、既存のファイルをディレクトリに追加することをサポートしない場合
      FileAlreadyExistsException - その名前のファイルがすでに存在するためにエントリを作成できなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがLinkPermission("hard")を拒否するか、またはそのcheckWriteメソッドがリンクまたは既存のファイルへの書込みアクセスを拒否する場合。
    • delete

      public static void delete(Path path) throws IOException
      ファイルを削除します。

      実装では、ファイルがディレクトリかどうかを判断するためにファイルを検査することが必要な場合があります。 その結果、このメソッドはほかのファイル・システム操作に関して原始的でない可能性があります。 ファイルがシンボリック・リンクの場合、そのリンクの最終ターゲットではなく、そのシンボリック・リンク自体が削除されます。

      ファイルがディレクトリの場合、ディレクトリは空である必要があります。 一部の実装では、ディレクトリの作成時に作成される特殊なファイルやリンクのエントリがディレクトリに存在します。 このような実装では、ディレクトリは特殊なエントリのみが存在する場合に空であるとみなされます。 このメソッドをwalkFileTreeメソッドとともに使用すると、必要に応じてディレクトリとそのディレクトリ内のすべてのエントリを削除したり、ファイル・ツリー全体を削除したりすることができます。

      一部のオペレーシング・システムでは、このJava仮想マシンまたはほかのプログラムによって開かれて使用されているファイルを削除できない場合があります。

      パラメータ:
      path - 削除するファイルへのパス
      例外:
      NoSuchFileException - ファイルが存在しない場合(オプションの固有例外)
      DirectoryNotEmptyException - ファイルがディレクトリで、ディレクトリが空でないために削除できなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、SecurityManager.checkDelete(String)メソッドが呼び出されてファイルへの削除アクセスがチェックされます。
    • deleteIfExists

      public static boolean deleteIfExists(Path path) throws IOException
      ファイルが存在する場合は削除します。

      delete(Path)メソッドと同様に、実装では、ファイルがディレクトリかどうかを判断するためにファイルを検査することが必要な場合があります。 その結果、このメソッドはほかのファイル・システム操作に関して原始的でない可能性があります。 ファイルがシンボリック・リンクの場合、そのリンクの最終ターゲットではなく、そのシンボリック・リンク自体が削除されます。

      ファイルがディレクトリの場合、ディレクトリは空である必要があります。 一部の実装では、ディレクトリの作成時に作成される特殊なファイルやリンクのエントリがディレクトリに存在します。 このような実装では、ディレクトリは特殊なエントリのみが存在する場合に空であるとみなされます。

      一部のオペレーシング・システムでは、このJava仮想マシンまたはほかのプログラムによって開かれて使用されているファイルを削除できない場合があります。

      パラメータ:
      path - 削除するファイルへのパス
      戻り値:
      ファイルがこのメソッドによって削除された場合はtrue、ファイルが存在しないために削除できなかった場合は false
      例外:
      DirectoryNotEmptyException - ファイルがディレクトリで、ディレクトリが空でないために削除できなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、SecurityManager.checkDelete(String)メソッドが呼び出されてファイルへの削除アクセスがチェックされます。
    • copy

      public static Path copy(Path source, Path target, CopyOption... options) throws IOException
      ファイルをターゲット・ファイルにコピーします。

      このメソッドは、コピーの実行方法を指定する optionsパラメータを使って、ファイルをターゲット・ファイルにコピーします。 デフォルトでは、ソースとターゲットが同じファイルである場合を除き(その場合、このメソッドはファイルをコピーしないで終了する)、ターゲット・ファイルがすでに存在するか、シンボリック・リンクである場合にそのコピーは失敗します。 ファイル属性がターゲット・ファイルにコピーされる必要ありません。 シンボリック・リンクがサポートされていて、ファイルがシンボリック・リンクである場合、そのリンクの最終ターゲットがコピーされます。 ファイルがディレクトリの場合、ターゲットのロケーション(ディレクトリ内のエントリはコピーされません)に空のディレクトリが作成されます。 このメソッドをwalkFileTreeメソッドとともに使用すると、必要に応じてディレクトリとそのディレクトリ内のすべてのエントリをコピーしたり、ファイル・ツリー全体をコピーしたりすることができます。

      optionsパラメータには次のものを含めることができます。

      オプション
      オプション 説明
      REPLACE_EXISTING 既存のファイルを置き換えます。 空でないディレクトリは置換できません。 ターゲット・ファイルが存在してシンボリック・リンクである場合は、リンクのターゲットではなくシンボリック・リンク自身が置換されます。
      COPY_ATTRIBUTES このファイルに関連付けられたファイル属性をターゲット・ファイルにコピーしようとします。 コピーされる正確なファイル属性はプラットフォームやファイル・システムに依存しているため、特定できません。 少なくとも、最終更新時間はターゲット・ファイルにコピーされます(ソースとターゲットの両方のファイル・ストアでサポートされている場合)。 ファイルのタイムスタンプをコピーすると、精度が失われる可能性があります。
      NOFOLLOW_LINKS シンボリック・リンクはたどられません。 ファイルがシンボリック・リンクの場合、そのリンクのターゲットではなく、そのシンボリック・リンク自体がコピーされます。 ファイル属性を新しいリンクにコピーできるかどうかは実装に固有です。 つまり、シンボリック・リンクをコピーする場合はCOPY_ATTRIBUTESオプションが無視される可能性があります。

      このインタフェースの実装は、追加の実装固有オプションをサポートできます。

      ファイルのコピーは、原子的操作ではありません。 IOExceptionがスローされる場合は、ターゲット・ファイルが不完全であるか、またはそのファイル属性の一部がソース・ファイルからコピーされていない可能性があります。 REPLACE_EXISTINGオプションが指定され、ターゲット・ファイルが存在する場合は、ターゲット・ファイルが置換されます。 ファイルがあるかどうかのチェックや新しいファイルの作成は、ほかのファイル・システム・アクティビティに対して原子的でない可能性があります。

      使用例: ファイルをディレクトリ内にコピーして、そのファイル名をソース・ファイルと同じに名前にするとします。

           Path source = ...
           Path newdir = ...
           Files.copy(source, newdir.resolve(source.getFileName());
       

      パラメータ:
      source - コピーするファイルへのパス
      target - ターゲット・ファイルへのパス(ソース・パスとは異なるプロバイダに関連付けられている場合がある)
      options - コピーをどのように実行するべきかを指定するオプション
      戻り値:
      ターゲット・ファイルへのパス
      例外:
      UnsupportedOperationException - サポートされないコピー・オプションが配列に含まれる場合
      FileAlreadyExistsException - ターゲット・ファイルは存在するけれども、REPLACE_EXISTINGオプションが指定されていないために置換できない場合(オプションの固有例外)
      DirectoryNotEmptyException - REPLACE_EXISTINGオプションが指定されているけれども、空でないディレクトリであるために置換できない場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてソース・ファイルへの読取りアクセスがチェックされ、checkWriteメソッドが呼び出されてターゲット・ファイルへの書込みアクセスがチェックされます。 シンボリック・リンクがコピーされる場合は、セキュリティ・マネージャが呼び出されてLinkPermission("symbolic")がチェックされます。
    • move

      public static Path move(Path source, Path target, CopyOption... options) throws IOException
      ファイルをターゲット・ファイルに移動するか、そのファイル名を変更します。

      デフォルトでは、このメソッドはターゲット・ファイルへのファイルの移動を試み、ソースとターゲットが同じファイルである場合を除き(その場合、このメソッドは何の効果もない)、ターゲット・ファイルが存在する場合は失敗します。 ファイルがシンボリック・リンクの場合、そのリンクのターゲットではなく、そのシンボリック・リンク自体が移動されます。 このメソッドは空のディレクトリを移動するために呼び出すこともできます。 一部の実装では、ディレクトリの作成時に作成される特殊なファイルやリンクのエントリがディレクトリに存在します。 このような実装では、ディレクトリは特殊なエントリのみが存在する場合に空であるとみなされます。 空でないディレクトリを移動するために呼び出すと、そのディレクトリ内のエントリを移動する必要がない場合にそのディレクトリが移動されます。 たとえば、同じFileStore上にあるディレクトリの名前を変更する場合、通常はそのディレクトリ内のエントリを移動する必要はありません。 ディレクトリを移動するときにそのエントリも移動する必要がある場合、このメソッドは失敗します( IOExceptionをスローする)。 ファイル・ツリーを移動する場合は、ディレクトリの移動ではなくコピーが必要になることがあり、これを行うには、copyメソッドをFiles.walkFileTreeユーティリティ・メソッドと組み合わせて使用します。

      optionsパラメータには次のものを含めることができます。

      オプション
      オプション 説明
      REPLACE_EXISTING 既存のファイルを置き換えます。 空でないディレクトリは置換できません。 ターゲット・ファイルが存在してシンボリック・リンクである場合は、リンクのターゲットではなくシンボリック・リンク自身が置換されます。
      ATOMIC_MOVE この移動は原子的なファイル・システム操作として実行され、他のオプションはすべて無視されます。 ターゲット・ファイルが存在する場合、その既存ファイルが置換されるか、またはこのメソッドがIOExceptionをスローして失敗するかは実装に固有です。 移動を原子的なファイル・システム操作として実行できない場合は、AtomicMoveNotSupportedExceptionがスローされます。 これは、ターゲットの場所が異なるFileStore上にあるときにファイルをコピーする必要があったり、ターゲットの場所がこのオブジェクトとは異なるプロバイダに関連付けられていたりする場合などに発生することがあります。

      このインタフェースの実装は、追加の実装固有オプションをサポートできます。

      ファイルを移動すると、最終更新時間がターゲット・ファイルにコピーされます(ソースとターゲットの両方のファイル・ストアでサポートされている場合)。 ファイルのタイムスタンプをコピーすると、精度が失われる可能性があります。 実装では、他のファイル属性のコピーも試みることができますが、それらのファイル属性をコピーできない場合に必ずしも失敗するとはかぎりません。 移動を原子的でない操作として実行し、IOExceptionがスローされる場合、ファイルの状態は特定できません。 元のファイルとターゲット・ファイルの両方が存在したり、ターゲット・ファイルが不完全であったり、そのファイル属性の一部が元のファイルからコピーされていなかったりする可能性があります。

      使用例: ファイルの名前を「newname」に変更して、そのファイルを同じディレクトリに保存するとします。

           Path source = ...
           Files.move(source, source.resolveSibling("newname"));
       
      あるいは、ファイルを新しいディレクトリに移動して、同じファイル名を保持し、ディレクトリ内にその名前の既存ファイルがあれば置換するとします。
           Path source = ...
           Path newdir = ...
           Files.move(source, newdir.resolve(source.getFileName()), REPLACE_EXISTING);
       

      パラメータ:
      source - 移動するファイルへのパス
      target - ターゲット・ファイルへのパス(ソース・パスとは異なるプロバイダに関連付けられている場合がある)
      options - 移動をどのように実行するべきかを指定するオプション
      戻り値:
      ターゲット・ファイルへのパス
      例外:
      UnsupportedOperationException - サポートされないコピー・オプションが配列に含まれる場合
      FileAlreadyExistsException - ターゲット・ファイルは存在するけれども、REPLACE_EXISTINGオプションが指定されていないために置換できない場合(オプションの固有例外)
      DirectoryNotEmptyException - REPLACE_EXISTINGオプションが指定されていますが、空ではないディレクトリであるためファイルを置換できません。または、(optional specific exceptions)を移動する必要があるエントリを含む空ではないディレクトリです。
      AtomicMoveNotSupportedException - オプション配列にATOMIC_MOVEオプションを含まれるけれども、原子的なファイル・システム操作としてファイルを移動できない場合。
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてソースおよびターゲット・ファイルの両方への書込みアクセスがチェックされます。
    • readSymbolicLink

      public static Path readSymbolicLink(Path link) throws IOException
      シンボリック・リンクのターゲットを読み取ります(オプションの操作)

      ファイル・システムがシンボリック・リンクをサポートしている場合、このメソッドはそのリンクのターゲットを読み取るために使用され、ファイルがシンボリック・リンクでない場合は失敗します。 そのリンクのターゲットは存在しなくてもかまいません。 返されるPathオブジェクトは、linkと同じファイル・システムに関連付けられます。

      パラメータ:
      link - シンボリック・リンクへのパス
      戻り値:
      そのリンクのターゲットを表すPathオブジェクト
      例外:
      UnsupportedOperationException - この実装がシンボリック・リンクをサポートしていない場合。
      NotLinkException - ファイルがシンボリック・リンクではないためにターゲットを読み取れなかった場合(オプションの固有例外)
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、リンクを読み取る"readlink"アクションにFilePermissionが付与されていることがチェックされます。
    • getFileStore

      public static FileStore getFileStore(Path path) throws IOException
      ファイルが置かれているファイル・ストアを表すFileStoreを返します。

      FileStoreへの参照が取得されると、返されたFileStoreに対する操作や、そこから取得されるFileStoreAttributeViewオブジェクトが引き続きそのファイルの存在に左右されるのかどうかは実装に固有です。 特に、ファイルが削除されたり、別のファイル・ストアに移動されたりする場合では、この動作を特定できません。

      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイルが格納されるファイル・ストア
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダの場合、セキュリティ・マネージャがインストールされている場合、checkReadメソッドが呼び出されてファイルへの読み取りアクセスをチェックし、さらにRuntimePermission ("getFileStoreAttributes")をチェック
    • isSameFile

      public static boolean isSameFile(Path path, Path path2) throws IOException
      2つのパスが同じファイルを検出するかどうかを判断します。

      両方のPathオブジェクトが等しい場合、このメソッドはファイルが存在するかどうかを判定せずにtrueを返します。 2つのPathオブジェクトが別々のプロバイダに関連付けられている場合、このメソッドはfalseを返します。 それ以外の場合、このメソッドは両方のPathオブジェクトが同じファイルを検出するかどうかを判定し、実装によっては、両方のファイルを開くか、それにアクセスすることが必要になる場合があります。

      ファイル・システムやファイルがstaticのままである場合、このメソッドはnull以外のPathに対して同値関係を実装します。

      • 反射性(reflexive): パス fについて、isSameFile(f,f)trueを返します。
      • 対称性(symmetric): 2つのパス fおよびgについて、isSameFile(f,g)isSameFile(g,f)と同等です。
      • それはtransitiveです: Paths fgおよびhの3つについて、isSameFile(f,g)trueを返し、isSameFile(g,h)trueを返した場合、isSameFile(f,h)trueを返します。

      パラメータ:
      path - ファイルへの一方のパス
      path2 - もう一方のパス
      戻り値:
      2つのパスが同じファイルを検出する場合にのみtrue
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されて2つのファイルへの読取りアクセスがチェックされます。
      関連項目:
    • mismatch

      public static long mismatch(Path path, Path path2) throws IOException
      2つのファイルのコンテンツ内で、最初の不一致バイトの位置を検索して返します。不一致がない場合は、-1L 位置は、0Lの小さいファイルのサイズ(バイト単位)までの範囲内です。

      2つのファイルは、次のいずれかの条件を満たしている場合に一致するとみなされます:

      • 2つのパスが「同じファイル」を見つけます(2つのequalパスが、存在しないファイルを見つけても、または
      • 2つのファイルのサイズは同じであり、最初のファイルのすべてのバイトが2番目のファイルの対応するバイトと同一です。

      それ以外の場合、2つのファイルには不一致があり、このメソッドによって返される値は次のとおりです:

      • 最初の一致しないバイトの位置、または
      • ファイルのサイズが異なる場合の小さいファイル(バイト単位)のサイズと小さいファイルの各バイトは、大きいファイルの対応するバイトと同じです。

      このメソッドは、ほかのファイルシステム操作に関してアトミックでない可能性があります。 このメソッドは常にreflexive (Path fの場合は、mismatch(f,f)の戻り値は-1L)です。 ファイル・システムとファイルが静的なままになっている場合、このメソッドはsymmetric (2つのPaths fgの場合、mismatch(f,g)mismatch(g,f)と同じ値を返します)です。

      パラメータ:
      path - 最初のファイルへのパス
      path2 - 2つ目のファイルへのパス
      戻り値:
      最初の不一致の位置、または不一致がない場合は-1L
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されて2つのファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      12
    • isHidden

      public static boolean isHidden(Path path) throws IOException
      ファイルが隠しファイルとみなされるかどうかを判断します。
      APIのノート:
      「隠し」の正確な定義はプラットフォームまたはプロバイダに依存します。 たとえば、UNIXでは、ファイル名がピリオド(「.」)で始まるファイルが隠しファイルとみなされます。 Windowsでは、DOS hidden属性が設定されている場合、ファイルは非表示とみなされます。

      実装によっては、このメソッドは、ファイルが隠しファイルとみなされるかどうかを判断するためにファイル・システムにアクセスすることが必要になる場合があります。

      パラメータ:
      path - テストするファイルへのパス
      戻り値:
      ファイルが隠しとみなされる場合true
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
    • probeContentType

      public static String probeContentType(Path path) throws IOException
      ファイルのコンテンツ・タイプを調べます。

      このメソッドは、インストールされているFileTypeDetectorの実装を使用して、指定されたファイルを調査し、そのコンテンツ・タイプを特定します。 各ファイル・タイプ・ディテクタのprobeContentTypeが順番に呼び出されて、ファイル・タイプが調査されます。 ファイルが認識される場合は、コンテンツ・タイプが返されます。 インストールされているどのファイル・タイプ・ディテクタによってもファイルが認識されない場合は、システム・デフォルトのファイル・タイプ・ディテクタが呼び出されてコンテンツ・タイプが推測されます。

      Java仮想マシンのある特定の呼出しで、システム全体のファイル・タイプ・ディテクタ・リストが保持されます。 インストールされているファイル・タイプ・ディテクタのロードには、ServiceLoaderクラスで定義されているサービス・プロバイダのロード機能が使用されます。 インストールされているファイル・タイプ・ディテクタのロードにはシステム・クラス・ローダーが使用されます。 システム・クラス・ローダーが見つからない場合、プラットフォーム・クラス・ローダーが使用されます。 ファイル型検出器は通常、アプリケーション・クラス・パス上のJARファイルに配置することでインストールされ、JARファイルにはリソース・ディレクトリMETA-INF/servicesjava.nio.file.spi.FileTypeDetectorという名前のプロバイダ構成ファイルが含まれ、ファイルには具象サブクラスの1つ以上の完全修飾名引数のないコンストラクタを持つFileTypeDetector のインスタンスです。 インストールされているファイル・タイプ・ディテクタの検索またはインスタンス化のプロセスが失敗すると、特定できないエラーがスローされます。 インストールされているプロバイダの検索順序は実装によって異なります。

      このメソッドの戻り値は、RFC 2045「MIME (Multipurpose Internet Mail Extensions)のパート1: インターネット・メッセージ本文の形式」で定義されている、MIME (Multipurpose Internet Mail Extension)コンテンツ・タイプの文字列形式の値になります。 この文字列は、RFCの文法に従って構文解析可能であることが保証されています。

      パラメータ:
      path - 調査するファイルへのパス
      戻り値:
      ファイルのコンテンツ・タイプ。コンテンツ・タイプを特定できない場合はnull
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - セキュリティ・マネージャがインストールされ、それがファイル・タイプ・ディテクタ実装に必要な未指定のアクセス権を拒否する場合。
    • getFileAttributeView

      public static <V extends FileAttributeView> V getFileAttributeView(Path path, Class<V> type, LinkOption... options)
      指定されたタイプのファイル属性ビューを返します。

      ファイル属性ビューは、一連のファイル属性の読取り専用または更新可能なビューを提供します。 このメソッドは、ファイル属性の読み取りや更新を行うための型保証されたメソッドをファイル属性ビューで定義する場合に使用するよう意図されています。 typeパラメータは必要な属性ビューのタイプで、メソッドはサポートされている場合はそのタイプのインスタンスを返します。 BasicFileAttributeViewタイプは、ファイルの基本属性へのアクセスをサポートします。 このメソッドを呼び出して、そのタイプのファイル属性ビューを選択すると、常にそのクラスのインスタンスが返されます。

      options配列を使用すると、ファイルがシンボリック・リンクである場合の、結果となるファイル属性ビューによるシンボリック・リンクの処理方法を指定できます。 デフォルトではシンボリック・リンクはたどられます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。 シンボリック・リンクをサポートしない実装では、このオプションは無視されます。

      使用例: ファイルのACL (サポートされている場合)の読み取りまたは設定を行うとします。

           Path path = ...
           AclFileAttributeView view = Files.getFileAttributeView(path, AclFileAttributeView.class);
           if (view != null) {
               List<AclEntry> acl = view.getAcl();
               :
           }
       

      型パラメータ:
      V - FileAttributeViewタイプ
      パラメータ:
      path - ファイルへのパス
      type - ファイル属性ビューに対応するClassオブジェクト
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      指定されたタイプのファイル属性ビュー、または属性ビューのタイプがない場合はnull
    • readAttributes

      public static <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException
      一括操作としてファイル属性を読み取ります。

      typeパラメータは必要な属性のタイプで、このメソッドではそのタイプがサポートされている場合にそのインスタンスを返します。 すべての実装でファイル属性の基本セットがサポートされているため、このメソッドを BasicFileAttributes.classというtypeパラメータで呼び出した場合、 UnsupportedOperationExceptionはスローされません。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      ほかのファイル・システム操作に関して、すべてのファイル属性が原子的操作として読み取られるかどうかは実装固有です。

      使用例: ファイルの属性を一括して読み取るとします。

          Path path = ...
          BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
       
      あるいは、シンボリック・リンクをたどらずにファイルのPOSIX属性を読み取るとします。
          PosixFileAttributes attrs =
              Files.readAttributes(path, PosixFileAttributes.class, NOFOLLOW_LINKS);
       

      型パラメータ:
      A - BasicFileAttributesタイプ
      パラメータ:
      path - ファイルへのパス
      type - 読み取る必要のあるファイル属性のClass
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイル属性
      例外:
      UnsupportedOperationException - 指定されたタイプの属性がサポートされない場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。 このメソッドが、セキュリティ保護を必要とする属性を読み取るために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。
    • setAttribute

      public static Path setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException
      ファイル属性の値を設定します。

      attributeパラメータは、設定する属性を識別し、次の形式をとります。

      [view-name:]attribute-name
      ここで、角カッコ[...]はオプションのコンポーネントを表し、文字':'はそれ自体を表します。

      view-nameは、ファイル属性のセットを指定する、FileAttributeViewnameです。 これを指定しない場合は、デフォルトで"basic" (多くのファイル・システムに共通するファイル属性の基本セットを識別するファイル属性ビューの名前)になります。attribute-nameはそのセット内の属性の名前です。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクがたどられ、そのリンクの最終ターゲットのファイル属性が設定されます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      使用例: DOSの「hidden」属性を設定するとします。

          Path path = ...
          Files.setAttribute(path, "dos:hidden", true);
       

      パラメータ:
      path - ファイルへのパス
      attribute - 設定する属性
      value - 属性値
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      指定されたパス
      例外:
      UnsupportedOperationException - 属性ビューが使用できない場合
      IllegalArgumentException - 属性名が指定されない場合、または認識されない場合、または属性値の型は正しいが値が不適切な場合
      ClassCastException - 属性値が予想される型でないか、予想される型でない要素を含むコレクションである場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckWriteメソッドがファイルへの書込みアクセスを拒否する場合。 このメソッドが、セキュリティ保護を必要とする属性を設定するために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。
    • getAttribute

      public static Object getAttribute(Path path, String attribute, LinkOption... options) throws IOException
      ファイル属性の値を読み取ります。

      attributeパラメータは、読み取る属性を指定し、次の形式をとります。

      [view-name:]attribute-name
      ここで、角カッコ[...]はオプションのコンポーネントを表し、文字':'はそれ自体を表します。

      view-nameは、ファイル属性のセットを指定する、FileAttributeViewnameです。 これを指定しない場合は、デフォルトで"basic" (多くのファイル・システムに共通するファイル属性の基本セットを識別するファイル属性ビューの名前)になります。attribute-nameは属性の名前です。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      使用例:unix」ビューをサポートするシステム上のファイル所有者のユーザーIDを要求するとします。

          Path path = ...
          int uid = (Integer)Files.getAttribute(path, "unix:uid");
       

      パラメータ:
      path - ファイルへのパス
      attribute - 読み取る属性
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      属性値
      例外:
      UnsupportedOperationException - 属性ビューが使用できない場合
      IllegalArgumentException - 属性名が指定されていないか、認識されない場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。 このメソッドが、セキュリティ保護を必要とする属性を読み取るために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。
    • readAttributes

      public static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options) throws IOException
      一括操作として一連のファイル属性を読み取ります。

      attributesパラメータは、読み取る属性を識別し、次の形式をとります。

      [view-name:]attribute-list
      ここで、角カッコ[...]はオプションのコンポーネントを表し、文字':'はそれ自体を表します。

      view-nameは、ファイル属性のセットを指定する、FileAttributeViewnameです。 これを指定しない場合は、デフォルトで"basic" (多くのファイル・システムに共通するファイル属性の基本セットを識別するファイル属性ビューの名前)になります。

      attribute-listコンポーネントは、読み取る属性の1つ以上の名前のコンマ区切りのリストです。 このリストに値"*"が含まれている場合は、すべての属性が読み取られます。 サポートされていない属性は無視され、返されるマップには含まれません。 ほかのファイル・システム操作に関して、すべての属性が原子的操作として読み取られるかどうかは実装固有です。

      次の例は、 attributesパラメータの使用可能な値を示しています。

      使用可能な値は次のとおりです
      説明
      "*" すべての基本ファイル属性を読み取ります。
      "size,lastModifiedTime,lastAccessTime" ファイル・サイズ、最終更新時間、および最終アクセス時間の属性を読み取ります。
      "posix:*" すべてのPOSIX-file-attributesを読み取ります。
      "posix:permissions,owner,size" POSIXファイルのアクセス許可、所有者、およびファイル・サイズを読み取ります。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      パラメータ:
      path - ファイルへのパス
      attributes - 読み取る属性
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      返される属性のマップ。マップのキーは属性名で、その値は属性値である
      例外:
      UnsupportedOperationException - 属性ビューが使用できない場合
      IllegalArgumentException - 属性が指定されていないか、認識できない属性が指定されている場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。 このメソッドが、セキュリティ保護を必要とする属性を読み取るために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。
    • getPosixFilePermissions

      public static Set<PosixFilePermission> getPosixFilePermissions(Path path, LinkOption... options) throws IOException
      ファイルのPOSIXファイル・アクセス権を返します。

      pathパラメータは、PosixFileAttributeViewをサポートするFileSystemに関連付けられます。 この属性ビューは、Portable Operating System Interface (POSIX)の標準ファミリを実装するオペレーティング・システムによって使用されるファイル・システムのファイルに一般的に関連付けられるファイル属性へのアクセスを提供します。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      パラメータ:
      path - ファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイル・アクセス権
      例外:
      UnsupportedOperationException - 関連付けられるファイル・システムが PosixFileAttributeViewをサポートしない場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission("accessUserInformation")を拒否するか、またはそのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
    • setPosixFilePermissions

      public static Path setPosixFilePermissions(Path path, Set<PosixFilePermission> perms) throws IOException
      ファイルのPOSIXファイル・アクセス権を設定します。

      pathパラメータは、PosixFileAttributeViewをサポートするFileSystemに関連付けられます。 この属性ビューは、Portable Operating System Interface (POSIX)の標準ファミリを実装するオペレーティング・システムによって使用されるファイル・システムのファイルに一般的に関連付けられるファイル属性へのアクセスを提供します。

      パラメータ:
      path - ファイルへのパス
      perms - アクセス権の新しいセット
      戻り値:
      指定されたパス
      例外:
      UnsupportedOperationException - 関連付けられるファイル・システムが PosixFileAttributeViewをサポートしない場合
      ClassCastException - セットに PosixFilePermissionのタイプでない要素が含まれる場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission("accessUserInformation")を拒否するか、またはそのcheckWriteメソッドがファイルへの書込みアクセスを拒否する場合。
    • getOwner

      public static UserPrincipal getOwner(Path path, LinkOption... options) throws IOException
      ファイルの所有者を返します。

      pathパラメータは、FileOwnerAttributeViewをサポートするファイル・システムに関連付けられます。 このファイル属性ビューは、ファイルの所有者であるファイル属性へのアクセスを提供します。

      パラメータ:
      path - ファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイルの所有者を表すユーザー主体
      例外:
      UnsupportedOperationException - 関連付けられるファイル・システムが FileOwnerAttributeViewをサポートしない場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission("accessUserInformation")を拒否するか、またはそのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
    • setOwner

      public static Path setOwner(Path path, UserPrincipal owner) throws IOException
      ファイル所有者を更新します。

      pathパラメータは、FileOwnerAttributeViewをサポートするファイル・システムに関連付けられます。 このファイル属性ビューは、ファイルの所有者であるファイル属性へのアクセスを提供します。

      使用例: "joe"をファイルの所有者にするとします。

           Path path = ...
           UserPrincipalLookupService lookupService =
               provider(path).getUserPrincipalLookupService();
           UserPrincipal joe = lookupService.lookupPrincipalByName("joe");
           Files.setOwner(path, joe);
       

      パラメータ:
      path - ファイルへのパス
      owner - 新しいファイル所有者
      戻り値:
      指定されたパス
      例外:
      UnsupportedOperationException - 関連付けられるファイル・システムが FileOwnerAttributeViewをサポートしない場合
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission("accessUserInformation")を拒否するか、またはそのcheckWriteメソッドがファイルへの書込みアクセスを拒否する場合。
      関連項目:
    • isSymbolicLink

      public static boolean isSymbolicLink(Path path)
      ファイルがシンボリック・リンクかどうかをテストします。

      入出力例外を、ファイルがシンボリック・リンクでないケースと区別する必要がある場合は、readAttributesメソッドを使ってファイル属性を読み取ったり、BasicFileAttributes.isSymbolicLink()メソッドを使ってファイル・タイプを判定したりできます。

      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイルがシンボリック・リンクである場合はtrue。ファイルが存在しないか、シンボリック・リンクでないか、またはファイルがシンボリック・リンクかどうかを判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
    • isDirectory

      public static boolean isDirectory(Path path, LinkOption... options)
      ファイルがディレクトリかどうかをテストします。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      入出力例外を、ファイルがディレクトリでないケースと区別する必要がある場合は、readAttributesメソッドを使ってファイル属性を読み取ったり、BasicFileAttributes.isDirectory()メソッドを使ってファイル・タイプを判定したりできます。

      パラメータ:
      path - テストするファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイルがディレクトリである場合はtrue。ファイルが存在しないか、ディレクトリでないか、またはファイルがディレクトリかどうかを判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
    • isRegularFile

      public static boolean isRegularFile(Path path, LinkOption... options)
      ファイルが不透明な内容の通常ファイルかどうかをテストします。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      入出力例外を、ファイルが通常ファイルでないケースと区別する必要がある場合は、readAttributesメソッドを使ってファイル属性を読み取ったり、BasicFileAttributes.isRegularFile()メソッドを使ってファイル・タイプを判定したりできます。

      パラメータ:
      path - ファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイルが通常ファイルである場合はtrue。ファイルが存在しないか、通常ファイルでないか、またはファイルが通常ファイルかどうかを判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
    • getLastModifiedTime

      public static FileTime getLastModifiedTime(Path path, LinkOption... options) throws IOException
      ファイルの最終変更時間を返します。

      options配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      パラメータ:
      path - ファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイルが最後に変更された時間を表すFileTime。最終変更時間を示すタイムスタンプがそのファイル・システムによってサポートされていない場合は実装固有のデフォルト
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
      関連項目:
    • setLastModifiedTime

      public static Path setLastModifiedTime(Path path, FileTime time) throws IOException
      ファイルの最終変更時間属性を更新します。 ファイル時間は、そのファイル・システムでサポートされている元期と精度に変換されます。 粒度の細かいほうから粗いほうへ変換すると、精度が失われます。 最終変更時間がそのファイル・システムによってサポートされていない場合、またはそれがベースとなるファイル・ストアのサポート範囲外にあるときに、最終変更時間の設定を試みた場合のこのメソッドの動作は定義されていません。 IOExceptionをスローすることによって、失敗する場合としない場合があります。

      使用例: 最終変更時間を現在の時間に設定するとします。

          Path path = ...
          FileTime now = FileTime.fromMillis(System.currentTimeMillis());
          Files.setLastModifiedTime(path, now);
       

      パラメータ:
      path - ファイルへのパス
      time - 新しい最終変更時間
      戻り値:
      指定されたパス
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckWriteメソッドがファイルへの書込みアクセスを拒否する場合。
      関連項目:
    • size

      public static long size(Path path) throws IOException
      ファイルのサイズをバイトで返します。 圧縮、スパース・ファイルのサポート、またはその他の理由により、サイズがファイル・システム上の実際のサイズと異なる場合があります。 通常ファイルでないファイルのサイズは実装固有であるため未指定です。
      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイル・サイズ(バイト)
      例外:
      IOException - 入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckReadメソッドがファイルへの読取りアクセスを拒否する場合。
      関連項目:
    • exists

      public static boolean exists(Path path, LinkOption... options)
      ファイルが存在するかどうかをテストします。

      optionsパラメータを使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトではシンボリック・リンクはたどられます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      このメソッドの結果がすぐに古くなることに注意してください。 このメソッドがファイルが存在することを示す場合、後続のアクセスが成功する保証はありません。 このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。

      パラメータ:
      path - テストするファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション。
      戻り値:
      ファイルが存在する場合はtrue。ファイルが存在しないか、その存在を判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダの場合は、SecurityManager.checkRead(String)が呼び出されてファイルへの読取りアクセスがチェックされます。
      関連項目:
    • notExists

      public static boolean notExists(Path path, LinkOption... options)
      このパスが示すファイルが存在しないかどうかをテストします。 このメソッドは、ファイルが存在しないことが確認できたときにアクションを取る必要がある場合に使用するものです。

      optionsパラメータを使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。 デフォルトではシンボリック・リンクはたどられます。 オプションNOFOLLOW_LINKSが存在する場合は、シンボリック・リンクはたどられません。

      このメソッドがexistsメソッドを補足するものではないことに注意してください。 ファイルが存在するかどうか判断できない場合は、どちらのメソッドもfalseを返します。 existsメソッドと同様に、このメソッドの結果もすぐに古くなります。 このメソッドがファイルが存在することを示している場合、その後のファイルの作成が成功する保証はありません。 このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。

      パラメータ:
      path - テストするファイルへのパス
      options - シンボリック・リンクの処理方法を示すオプション
      戻り値:
      ファイルが存在しない場合はtrue。ファイルが存在するか、その存在を判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダの場合は、SecurityManager.checkRead(String)が呼び出されてファイルへの読取りアクセスがチェックされます。
    • isReadable

      public static boolean isReadable(Path path)
      ファイルが読取り可能かどうかをテストします。 このメソッドは、ファイルが存在することと、このJava仮想マシンに、そのファイルを読取り用に開けるようにする適切な特権があることを確認します。 実装によっては、このメソッドが、ファイルへの効果的なアクセスをチェックするために、ファイル・アクセス権、アクセス制御リスト、またはその他のファイル属性を読み取る必要がある場合があります。 その結果、このメソッドはほかのファイル・システムの操作に関して原始的でない可能性があります。

      このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを読取り用に開く試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。 このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。

      パラメータ:
      path - チェックするファイルへのパス
      戻り値:
      ファイルが存在し、読取り可能な場合はtrue。ファイルが存在しないか、Java仮想マシンに十分な特権がないために読取りアクセスが拒否されるか、またはアクセスを判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadが呼び出されてファイルへの読取りアクセスがチェックされます。
    • isWritable

      public static boolean isWritable(Path path)
      ファイルが書込み可能かどうかをテストします。 このメソッドは、ファイルが存在することと、このJava仮想マシンに、そのファイルを書込み用に開けるようにする適切な特権があることを確認します。 実装によっては、このメソッドが、ファイルへの効果的なアクセスをチェックするために、ファイル・アクセス権、アクセス制御リスト、またはその他のファイル属性を読み取る必要がある場合があります。 その結果、このメソッドはほかのファイル・システムの操作に関して原始的でない可能性があります。

      このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを書込み用に開く試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。 このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。

      パラメータ:
      path - チェックするファイルへのパス
      戻り値:
      ファイルが存在し、書込み可能な場合はtrue。ファイルが存在しないか、Java仮想マシンに十分な特権がないために書込みアクセスが拒否されるか、またはアクセスを判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteが呼び出されてファイルへの書込みアクセスがチェックされます。
    • isExecutable

      public static boolean isExecutable(Path path)
      ファイルが実行可能かどうかをテストします。 このメソッドは、ファイルが存在することと、このJava仮想マシンに、そのファイルを実行するための適切な特権があることを確認します。 ディレクトリへのアクセスをチェックする場合はセマンティックスが異なる場合があります。 たとえば、UNIXシステムでは、実行アクセスのチェックを行うと、Java仮想マシンに、ファイルまたはサブディレクトリにアクセスするためにディレクトリを検索する権限があることが確認されます。

      実装によっては、このメソッドが、ファイルへの効果的なアクセスをチェックするために、ファイル・アクセス権、アクセス制御リスト、またはその他のファイル属性を読み取る必要がある場合があります。 その結果、このメソッドはほかのファイル・システムの操作に関して原始的でない可能性があります。

      このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを実行する試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。 このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。

      パラメータ:
      path - チェックするファイルへのパス
      戻り値:
      ファイルが存在し、実行可能な場合はtrue。ファイルが存在しないか、Java仮想マシンに十分な特権がないために実行アクセスが拒否されるか、またはアクセスを判断できない場合はfalse
      例外:
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkExecが呼び出されてファイルへの実行アクセスがチェックされます。
    • walkFileTree

      public static Path walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor) throws IOException
      ファイル・ツリーを参照します。

      このメソッドは、指定された開始ファイルをルートとしたファイル・ツリーを参照します。 このファイル・ツリー・トラバーサルは、ファイルが検出されるごとに呼び出される、指定されたFileVisitorを使って深さ優先で行われます。 ツリー内のアクセス可能なファイルがすべてビジットされたか、ビジット・メソッドからTERMINATEという結果が返されると、ファイル・ツリー・トラバーサルは完了します。 ビジット・メソッドがIOException、キャッチされないエラー、または実行時例外のために終了した場合、そのトラバーサルは停止し、このメソッドの呼出し元にそのエラーまたは例外が通知されます。

      ファイルが検出されるごとに、このメソッドはそのBasicFileAttributesの読取りを試みます。 ファイルがディレクトリでない場合は、そのファイル属性でvisitFileメソッドが呼び出されます。 入出力例外のためにそのファイル属性を読み取れない場合は、その入出力例外でvisitFileFailedメソッドが呼び出されます。

      ファイルがディレクトリであり、そのディレクトリを開けなかった場合は、入出力例外でvisitFileFailedメソッドが呼び出され、その後、デフォルトではそのディレクトリの次の兄弟からファイル・ツリーの参照が再開されます。

      ディレクトリが正常に開いた場合は、ディレクトリ内のエントリとその子孫がビジットされます。 すべてのエントリがビジットされたか、ディレクトリの反復処理中に入出力エラーが発生した場合、そのディレクトリはクローズされ、ビジターのpostVisitDirectoryメソッドが呼び出されます。 デフォルトでは、そのディレクトリの次の兄弟からファイル・ツリーの参照が再開されます。

      デフォルトでは、シンボリック・リンクはこのメソッドで自動的にたどられません。 optionsパラメータにFOLLOW_LINKSオプションが含まれている場合は、シンボリック・リンクがたどられます。 リンクをたどっているときに、ターゲットの属性を読み取れない場合、このメソッドはそのリンクのBasicFileAttributesの取得を試みます。 それらを読み取れる場合は、そのリンクの属性でvisitFileメソッドが呼び出されます(それ以外の場合は、前述のようにvisitFileFailedメソッドが呼び出されます)。

      optionsパラメータにFOLLOW_LINKSオプションが含まれている場合、このメソッドはサイクルを検出できるようにビジットされたディレクトリを追跡します。 サイクルは、ディレクトリの上位ディレクトリの中にエントリが存在する場合に発生します。 サイクルの検出を行うには、ディレクトリのファイル・キーを記録します。ファイル・キーが利用できない場合は、isSameFileメソッドを呼び出して、ディレクトリが上位ディレクトリと同じファイルかどうかを判定します。 サイクルが検出されると、それは入出力エラーとして扱われ、FileSystemLoopExceptionのインスタンスでvisitFileFailedメソッドが呼び出されます。

      maxDepthパラメータは、ビジットするディレクトリ・レベルの最大数です。 0は、セキュリティ・マネージャに拒否されないかぎり、開始ファイルのみがビジットされることを意味します。 MAX_VALUEを使用すると、すべてのレベルがビジットされるように指定できます。 visitFileメソッドは、基本ファイル属性を読み取れない場合を除き、maxDepthで検出されるすべてのファイル(ディレクトリを含む)に対して呼び出されます。基本ファイル属性を読み取れない場合は、 visitFileFailedメソッドが呼び出されます。

      ビジターからnullという結果が返された場合は、 NullPointerExceptionがスローされます。

      セキュリティ・マネージャがインストールされていて、ファイル(またはディレクトリ)へのアクセスを拒否する場合、それは無視され、ビジターはそのファイル(またはディレクトリ)に対して呼び出されません。

      パラメータ:
      start - 開始ファイル
      options - トラバースを構成するオプション
      maxDepth - ビジットするディレクトリ・レベルの最大数
      visitor - 各ファイルに対して呼び出すファイル・ビジター
      戻り値:
      開始ファイル
      例外:
      IllegalArgumentException - maxDepthパラメータが負の値の場合
      SecurityException - セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。 デフォルト・プロバイダの場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
      IOException - ビジター・メソッドによって入出力エラーがスローされた場合
    • walkFileTree

      public static Path walkFileTree(Path start, FileVisitor<? super Path> visitor) throws IOException
      ファイル・ツリーを参照します。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.walkFileTree(start, EnumSet.noneOf(FileVisitOption.class), Integer.MAX_VALUE, visitor)
      つまり、それはシンボリック・リンクをたどらず、ファイル・ツリーのすべてのレベルをビジットします。

      パラメータ:
      start - 開始ファイル
      visitor - 各ファイルに対して呼び出すファイル・ビジター
      戻り値:
      開始ファイル
      例外:
      SecurityException - セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。 デフォルト・プロバイダの場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
      IOException - ビジター・メソッドによって入出力エラーがスローされた場合
    • newBufferedReader

      public static BufferedReader newBufferedReader(Path path, Charset cs) throws IOException
      ファイルを読取り用に開き、そのファイルから効果的な方法でテキストを読み取るために使用できるBufferedReaderを返します。 ファイルから取得したバイトは、指定された文字セットを使用して文字にデコードされます。 読取りはファイルの最初から始まります。

      ファイルから読み取るReaderメソッドは、形式が間違っているか、またはマップできないバイト・シーケンスが読み取られた場合に IOExceptionをスローします。

      パラメータ:
      path - ファイルへのパス
      cs - デコードに使用する文字セット
      戻り値:
      ファイルからテキストを読み取るための、デフォルトのバッファ・サイズを持つ、バッファに入れられた新しいリーダー
      例外:
      IOException - ファイルのオープン中に入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      関連項目:
    • newBufferedReader

      public static BufferedReader newBufferedReader(Path path) throws IOException
      ファイルを読込み用に開き、効率的な方法でファイルからテキストを読み込むBufferedReaderを返します。 ファイルから取得したバイトは、UTF-8文字セットを使用して文字にデコードされます。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.newBufferedReader(path, StandardCharsets.UTF_8)

      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイルからテキストを読み取るための、デフォルトのバッファ・サイズを持つ、バッファに入れられた新しいリーダー
      例外:
      IOException - ファイルのオープン中に入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      1.8
    • newBufferedWriter

      public static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options) throws IOException
      ファイルを書込み用に開くか作成して、そのファイルに効果的な方法でテキストを書き込むために使用できるBufferedWriterを返します。 optionsパラメータは、ファイルの作成方法またはオープン方法を指定します。 オプションがない場合、このメソッドはCREATETRUNCATE_EXISTING、およびWRITEオプションがあるかのように機能します。 つまり、書込み用にファイルを開きます(存在しない場合は作成し、存在する場合は最初に既存の通常ファイルをサイズ0に切り詰めます)。

      テキストを書き込むWriterメソッドは、指定された文字セットを使ってテキストをエンコードできない場合にIOExceptionをスローします。

      パラメータ:
      path - ファイルへのパス
      cs - エンコードに使用する文字セット
      options - ファイルを開く方法を指定するオプション
      戻り値:
      ファイルにテキストを書き込むための、デフォルトのバッファ・サイズを持つ、バッファに入れられた新しいライター
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルのオープンまたは作成中に入出力エラーが発生した場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定されている場合、(optional specific exception)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      関連項目:
    • newBufferedWriter

      public static BufferedWriter newBufferedWriter(Path path, OpenOption... options) throws IOException
      ファイルを書込み用に開くか作成し、効率的な方法でファイルにテキストを書き込むBufferedWriterを返します。 テキストは、UTF-8文字セットを使用して書込み用にバイトにエンコードされます。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.newBufferedWriter(path, StandardCharsets.UTF_8, options)

      パラメータ:
      path - ファイルへのパス
      options - ファイルを開く方法を指定するオプション
      戻り値:
      ファイルにテキストを書き込むための、デフォルトのバッファ・サイズを持つ、バッファに入れられた新しいライター
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルのオープンまたは作成中に入出力エラーが発生した場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定されている場合、(optional specific exception)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      導入されたバージョン:
      1.8
    • copy

      public static long copy(InputStream in, Path target, CopyOption... options) throws IOException
      すべてのバイトを入力ストリームからファイルにコピーします。 復帰すると、その入力ストリームはストリームの終わりに配置されます。

      デフォルトでは、ターゲット・ファイルがすでに存在するか、シンボリック・リンクである場合、コピーは失敗します。 REPLACE_EXISTINGオプションが指定されていて、ターゲット・ファイルがすでに存在する場合は、それが空でないディレクトリでなければ置換されます。 ターゲット・ファイルが存在し、それがシンボリック・リンクである場合は、そのシンボリック・リンクが置換されます。 このリリースでは、REPLACE_EXISTINGオプションは、このメソッドでサポートされる必要のある唯一のオプションです。 将来のリリースでは、追加のオプションがサポートされる可能性があります。

      入力ストリームからの読取り中またはファイルへの書込み中に入出力エラーが発生する場合は、ターゲット・ファイルが作成されたあとや、数バイトが読み取られたり、書き込まれたりしたあとでそうなることがあります。 その結果、入力ストリームがストリームの終わりに配置されず、整合性のない状態になる可能性があります。 入出力エラーが発生した場合は入力ストリームをただちにクローズすることを強くお薦めします。

      このメソッドは、入力ストリームからの読み取り(またはファイルへの書き込み)を無期限にブロックすることがあります。 コピー中に入力ストリームが非同期クローズされたり、スレッドの割込みが発生したりした場合の動作は、入力ストリームやファイル・システム・プロバイダによって大きく異なるため、特定できません。

      使用例: Webページを取得し、それをファイルを保存するとします。

           Path path = ...
           URI u = URI.create("http://www.example.com/");
           try (InputStream in = u.toURL().openStream()) {
               Files.copy(in, path);
           }
       

      パラメータ:
      in - 読取り元の入力ストリーム
      target - ファイルへのパス
      options - コピーをどのように実行するべきかを指定するオプション
      戻り値:
      読み取られるまたは書き込まれるバイト数
      例外:
      IOException - 読み取りまたは書込み中に入出力エラーが発生した場合。
      FileAlreadyExistsException - ターゲット・ファイルは存在するけれども、REPLACE_EXISTINGオプションが指定されていないために置換できない場合(オプションの固有例外)
      DirectoryNotEmptyException - REPLACE_EXISTINGオプションが指定されているけれども、空でないディレクトリであるために置換できない場合(オプションの固有例外)
      UnsupportedOperationException - サポートされていないコピー・オプションがoptionsに含まれる場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 REPLACE_EXISTINGオプションが指定されている場合は、セキュリティ・マネージャのcheckDeleteメソッドが呼び出されて、既存のファイルを削除できるかどうかがチェックされます。
    • copy

      public static long copy(Path source, OutputStream out) throws IOException
      すべてのバイトをファイルから出力ストリームにコピーします。

      ファイルからの読取り中または出力ストリームへの書込み中に入出力エラーが発生する場合は、数バイトが読み取られたり、書き込まれたりしたあとでそうなることがあります。 その結果、出力ストリームが整合性のない状態になる可能性があります。 入出力エラーが発生した場合は出力ストリームをただちにクローズすることを強くお薦めします。

      このメソッドは、出力ストリームへの書き込み(またはファイルからの読み取り)を無期限にブロックすることがあります。 コピー中に出力ストリームが非同期クローズされたり、スレッドの割込みが発生したりした場合の動作は、入力ストリームやファイル・システム・プロバイダによって大きく異なるため、特定できません。

      指定された出力ストリームがFlushableである場合は、バッファに入っている出力をフラッシュするために、このメソッドの完了後に、そのflushメソッドを呼び出すことが必要になることがあります。

      パラメータ:
      source - ファイルへのパス
      out - 書込み先の出力ストリーム
      戻り値:
      読み取られるまたは書き込まれるバイト数
      例外:
      IOException - 読み取りまたは書込み中に入出力エラーが発生した場合。
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
    • readAllBytes

      public static byte[] readAllBytes(Path path) throws IOException
      ファイルからすべてのバイトを読み取ります。 このメソッドは、すべてのバイトが読み取られたか、入出力エラーまたは他の実行時例外がスローされたときに必ずそのファイルがクローズされるようにします。

      このメソッドが、すべてのバイトを1つのバイト配列に読み取ると都合が良い簡単なケースで使用するものであることに注意してください。 大きなファイルを読み取ることを目的とはしていません。

      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイルから読み取られたバイトを含むバイト配列
      例外:
      IOException - ストリームからの読取り中に入出力エラーが発生した場合
      OutOfMemoryError - 必要なサイズの配列を割り当てられない場合(ファイルが2GBを超えるなど)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
    • readString

      public static String readString(Path path) throws IOException
      ファイルのすべてのコンテンツを文字列に読み込み、UTF-8 charsetを使用してバイトから文字にデコードします。 このメソッドを使用すると、すべてのコンテンツが読み取られた場合や、I/Oエラーまたはその他の実行時例外がスローされた場合に、ファイルがクローズされます。

      このメソッドは次のメソッドと同等です: readString(path, StandardCharsets.UTF_8)

      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイルから読み込まれたコンテンツを含む文字列
      例外:
      IOException - ファイルからの読取り中に入出力エラーが発生した場合、または形式が間違っているか、マップできないバイト・シーケンスが読み取られた場合
      OutOfMemoryError - ファイルが非常に大きい場合(たとえば、2GBより大きい場合)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      11
    • readString

      public static String readString(Path path, Charset cs) throws IOException
      ファイルのすべての文字を文字列に読み込み、指定されたcharsetを使用してバイトから文字にデコードします。 このメソッドを使用すると、すべてのコンテンツが読み取られた場合や、I/Oエラーまたはその他の実行時例外がスローされた場合に、ファイルがクローズされます。

      このメソッドは、中央または末尾(あるいはその両方)のセパレータを含め、すべてのコンテンツを読み取ります。 生成される文字列には、ファイル内に表示されるセパレータが含まれます。

      APIのノート:
      このメソッドは、ファイルのコンテンツをString内に読みやすくする単純なケースを対象としています。 非常に大きなファイルの読取りは意図していません。
      パラメータ:
      path - ファイルへのパス
      cs - デコードに使用する文字セット
      戻り値:
      ファイルから読み込まれたコンテンツを含む文字列
      例外:
      IOException - ファイルからの読取り中に入出力エラーが発生した場合、または形式が間違っているか、マップできないバイト・シーケンスが読み取られた場合
      OutOfMemoryError - ファイルが非常に大きい場合(たとえば、2GBより大きい場合)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      11
    • readAllLines

      public static List<String> readAllLines(Path path, Charset cs) throws IOException
      ファイルからすべての行を読み取ります。 このメソッドは、すべてのバイトが読み取られたか、入出力エラーまたは他の実行時例外がスローされたときに必ずそのファイルがクローズされるようにします。 ファイルから取得したバイトは、指定された文字セットを使用して文字にデコードされます。

      このメソッドは、次を行末記号と認識します。

      • \u000D\u000A、キャリッジ・リターンと改行
      • \u000A、改行
      • \u000D、キャリッジ・リターン

      将来のリリースでは、追加のUnicode行末記号が認識される可能性があります。

      このメソッドが、すべての行を1回の操作で読み取ると都合が良い簡単なケースで使用するものであることに注意してください。 大きなファイルを読み取ることを目的とはしていません。

      パラメータ:
      path - ファイルへのパス
      cs - デコードに使用する文字セット
      戻り値:
      Listとしてファイルからの行; Listが変更可能かどうかは実装に依存するため、指定されていません
      例外:
      IOException - ファイルからの読取り中に入出力エラーが発生した場合、または形式が間違っているか、マップできないバイト・シーケンスが読み取られた場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      関連項目:
    • readAllLines

      public static List<String> readAllLines(Path path) throws IOException
      ファイルからすべての行を読み取ります。 ファイルから取得したバイトは、UTF-8文字セットを使用して文字にデコードされます。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.readAllLines(path, StandardCharsets.UTF_8)

      パラメータ:
      path - ファイルへのパス
      戻り値:
      Listとしてファイルからの行; Listが変更可能かどうかは実装に依存するため、指定されていません
      例外:
      IOException - ファイルからの読取り中に入出力エラーが発生した場合、または形式が間違っているか、マップできないバイト・シーケンスが読み取られた場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      1.8
    • write

      public static Path write(Path path, byte[] bytes, OpenOption... options) throws IOException
      バイトをファイルに書き込みます。 optionsパラメータは、ファイルの作成方法またはオープン方法を指定します。 オプションがない場合、このメソッドはCREATETRUNCATE_EXISTING、およびWRITEオプションがあるかのように機能します。 つまり、書込み用にファイルを開きます(存在しない場合は作成し、そうでない場合は最初に既存の通常ファイルをサイズ0に切り詰めます)。 バイト配列内のすべてのバイトがファイルに書き込まれます。 このメソッドは、すべてのバイトが書き込まれた(あるいは、入出力エラーまたは他の実行時例外がスローされた)ときに必ずそのファイルがクローズされるようにします。 I/Oエラーが発生した場合、ファイルが作成または切り捨てられた後、またはファイルにいくつかのバイトが書き込まれた後にエラーが発生する可能性があります。

      使用例: デフォルトでは、このメソッドは新しいファイルを作成するか、既存のファイルに上書きします。 その代わりに、バイトを既存のファイルに追加するとします。

           Path path = ...
           byte[] bytes = ...
           Files.write(path, bytes, StandardOpenOption.APPEND);
       

      パラメータ:
      path - ファイルへのパス
      bytes - 書き込むバイトを含むバイト配列
      options - ファイルを開く方法を指定するオプション
      戻り値:
      パス
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルへの書込み中またはファイルの作成中に入出力エラーが発生した場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定されている場合、(optional specific exception)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
    • write

      public static Path write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options) throws IOException
      テキスト行をファイルに書き込みます。 各行は文字シーケンスであり、システム・プロパティ line.separatorで定義されているように、各行の終端がプラットフォームの行区切り文字で表されるファイルに順々に書き込まれます。 文字は、指定された文字セットを使ってバイトにエンコードされます。

      optionsパラメータは、ファイルの作成方法またはオープン方法を指定します。 オプションがない場合、このメソッドはCREATETRUNCATE_EXISTING、およびWRITEオプションがあるかのように機能します。 つまり、書込み用にファイルを開きます(存在しない場合は作成し、そうでない場合は最初に既存の通常ファイルをサイズ0に切り詰めます)。 このメソッドは、すべての行が書き込まれた(あるいは、入出力エラーまたは他の実行時例外がスローされた)ときに必ずそのファイルがクローズされるようにします。 I/Oエラーが発生した場合、ファイルが作成または切り捨てられた後、またはファイルにいくつかのバイトが書き込まれた後にエラーが発生する可能性があります。

      パラメータ:
      path - ファイルへのパス
      lines - 文字シーケンスすべてについて反復処理を行うオブジェクト
      cs - エンコードに使用する文字セット
      options - ファイルを開く方法を指定するオプション
      戻り値:
      パス
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルへの書込み中またはファイルの作成中に入出力エラーが発生したか、指定された文字セットを使ってテキストをエンコードできない場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      FileAlreadyExistsException - その名前のファイルがすでに存在し、CREATE_NEWオプションが指定されている場合、(optional specific exception)
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
    • write

      public static Path write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options) throws IOException
      テキスト行をファイルに書き込みます。 文字は、UTF-8文字セットを使用してバイトにエンコードされます。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.write(path, lines, StandardCharsets.UTF_8, options)

      パラメータ:
      path - ファイルへのパス
      lines - 文字シーケンスすべてについて反復処理を行うオブジェクト
      options - ファイルを開く方法を指定するオプション
      戻り値:
      パス
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルへの書込み中またはファイルの作成中に入出力エラーが発生したか、UTF-8としてテキストをエンコードできない場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      導入されたバージョン:
      1.8
    • writeString

      public static Path writeString(Path path, CharSequence csq, OpenOption... options) throws IOException
      CharSequenceをファイルに書き込みます。 文字は、UTF-8文字セットを使用してバイトにエンコードされます。

      このメソッドは次のメソッドと同等です: writeString(path, csq, StandardCharsets.UTF_8, options)

      パラメータ:
      path - ファイルへのパス
      csq - 書き込まれるCharSequence
      options - ファイルを開く方法を指定するオプション
      戻り値:
      パス
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルの書込みまたは作成中にI/Oエラーが発生した場合、またはUTF-8を使用してテキストをエンコードできない場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      導入されたバージョン:
      11
    • writeString

      public static Path writeString(Path path, CharSequence csq, Charset cs, OpenOption... options) throws IOException
      CharSequenceをファイルに書き込みます。 指定されたcharsetを使用して文字がバイトにエンコードされます。

      すべての文字は、charシーケンスの行セパレータを含め、そのまま書き込まれます。 余分な文字は追加されません。

      optionsパラメータは、ファイルの作成方法またはオープン方法を指定します。 オプションがない場合、このメソッドはCREATETRUNCATE_EXISTING、およびWRITEオプションがあるかのように機能します。 つまり、書込み用にファイルを開きます(存在しない場合は作成し、そうでない場合は最初に既存の通常ファイルをサイズ0に切り詰めます)。

      パラメータ:
      path - ファイルへのパス
      csq - 書き込まれるCharSequence
      cs - エンコードに使用する文字セット
      options - ファイルを開く方法を指定するオプション
      戻り値:
      パス
      例外:
      IllegalArgumentException - optionsにオプションの無効な組み合わせが含まれる場合
      IOException - ファイルへの書込み中またはファイルの作成中に入出力エラーが発生したか、指定された文字セットを使ってテキストをエンコードできない場合
      UnsupportedOperationException - 未サポートのオプションが指定された場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteメソッドが呼び出されてファイルへの書込みアクセスがチェックされます。 DELETE_ON_CLOSEオプションでファイルが開かれた場合は、checkDeleteメソッドが呼び出されて削除アクセスがチェックされます。
      導入されたバージョン:
      11
    • list

      public static Stream<Path> list(Path dir) throws IOException
      ディレクトリ内のエントリを要素に持つ遅延設定Streamを返します。 リストは再帰的ではありません。

      ストリームの要素は、dirに対してディレクトリ・エントリの名前を解決したかのように取得されるPathオブジェクトです。 一部のファイル・システムでは、ディレクトリ自体やディレクトリの親ディレクトリへの特殊なリンクを保持しています。 これらのリンクを表すエントリは含まれません。

      ストリームは、弱一貫性を保持します。 それはスレッド・セーフですが、反復処理中にディレクトリをフリーズしないため、このメソッドからの復帰後に行われる更新がディレクトリに反映されることも反映されないこともあります。

      返されるストリームには、オープン・ディレクトリへの参照が含まれます。 ディレクトリを閉じるには、ストリームを閉じます。

      クローズされたストリームに対する操作は、ストリームの終わりに達したかのように動作します。 先読みが原因で、ストリームがクローズされた後に1つ以上の要素が返されることがあります。

      このメソッドの復帰後にディレクトリにアクセスするときにIOExceptionがスローされる場合、アクセスが発生する原因となったメソッドからスローされるUncheckedIOExceptionにラップされます。

      APIのノート:
      このメソッドは、try-with-resources文または類似の制御構造内で使用して、ストリーム操作が完了した後にストリームのオープン・ディレクトリがすぐに閉じられるようにする必要があります。
      パラメータ:
      dir - ディレクトリへのパス
      戻り値:
      ディレクトリの内容を記述するStream
      例外:
      NotDirectoryException - ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)
      IOException - ディレクトリを開いているときに入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
      導入されたバージョン:
      1.8
      関連項目:
    • walk

      public static Stream<Path> walk(Path start, int maxDepth, FileVisitOption... options) throws IOException
      指定された開始ファイルをルートとするファイル・ツリーを参照することで Pathが遅延移入されるStreamを返します。 ファイル・ツリーは深さ優先でトラバースされます。ストリーム内の要素は、startに対して相対パスを解決したかのように取得されるPathオブジェクトです。

      streamは、要素が消費されるときにファイル・ツリーを参照します。 返されるStreamには、少なくとも1つの要素(開始ファイル自体)が含まれることが保証されます。 ビジットされるファイルごとに、ストリームはそのBasicFileAttributesの読取りを試みます。 ファイルがディレクトリであり、正常に開くことができた場合は、ディレクトリ内のエントリとその子孫が、検出されたときにディレクトリに続いてストリームに含められます。 すべてのエントリがビジットされたら、ディレクトリはクローズされます。 そのディレクトリの次の兄弟からファイル・ツリーの参照が再開されます。

      ストリームは、弱一貫性を保持します。 それは反復処理中にファイルをフリーズしないため、このメソッドからの復帰後に行われる更新がファイル・ツリーに反映されることも反映されないこともあります。

      デフォルトでは、シンボリック・リンクはこのメソッドで自動的にたどられません。 optionsパラメータにFOLLOW_LINKSオプションが含まれている場合は、シンボリック・リンクがたどられます。 リンクをたどっているときに、ターゲットの属性を読み取れない場合、このメソッドはそのリンクのBasicFileAttributesの取得を試みます。

      optionsパラメータにFOLLOW_LINKSオプションが含まれている場合、このストリームはサイクルを検出できるようにビジットされたディレクトリを追跡します。 サイクルは、ディレクトリの上位ディレクトリの中にエントリが存在する場合に発生します。 サイクルの検出を行うには、ディレクトリのファイル・キーを記録します。ファイル・キーが利用できない場合は、isSameFileメソッドを呼び出して、ディレクトリが上位ディレクトリと同じファイルかどうかを判定します。 サイクルが検出されると、それはFileSystemLoopExceptionのインスタンスを伴う入出力エラーとして扱われます。

      maxDepthパラメータは、ビジットするディレクトリ・レベルの最大数です。 0は、セキュリティ・マネージャに拒否されないかぎり、開始ファイルのみがビジットされることを意味します。 MAX_VALUEを使用すると、すべてのレベルがビジットされるように指定できます。

      セキュリティ・マネージャがインストールされていて、ファイル(またはディレクトリ)へのアクセスを拒否する場合、それは無視され、ストリームに含められません。

      返されるストリームには、1つ以上のオープン・ディレクトリへの参照が含まれます。 ディレクトリを閉じるには、ストリームを閉じます。

      このメソッドの復帰後にディレクトリにアクセスするときにIOExceptionがスローされる場合、アクセスが発生する原因となったメソッドからスローされるUncheckedIOExceptionにラップされます。

      APIのノート:
      このメソッドは、try-with-resources文または類似の制御構造内で使用して、ストリーム操作が完了した後にストリームのオープン・ディレクトリがすぐに閉じられるようにする必要があります。
      パラメータ:
      start - 開始ファイル
      maxDepth - ビジットするディレクトリ・レベルの最大数
      options - トラバースを構成するオプション
      戻り値:
      PathStream
      例外:
      IllegalArgumentException - maxDepthパラメータが負の値の場合
      SecurityException - セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。 デフォルト・プロバイダの場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
      IOException - 開始ファイルにアクセスしているときに入出力エラーがスローされる場合
      導入されたバージョン:
      1.8
    • walk

      public static Stream<Path> walk(Path start, FileVisitOption... options) throws IOException
      指定された開始ファイルをルートとするファイル・ツリーを参照することで Pathが遅延移入されるStreamを返します。 ファイル・ツリーは深さ優先でトラバースされます。ストリーム内の要素は、startに対して相対パスを解決したかのように取得されるPathオブジェクトです。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.walk(start, Integer.MAX_VALUE, options)
      つまり、それはファイル・ツリーのすべてのレベルをビジットします。

      返されるストリームには、1つ以上のオープン・ディレクトリへの参照が含まれます。 ディレクトリを閉じるには、ストリームを閉じます。

      APIのノート:
      このメソッドは、try-with-resources文または類似の制御構造内で使用して、ストリーム操作が完了した後にストリームのオープン・ディレクトリがすぐに閉じられるようにする必要があります。
      パラメータ:
      start - 開始ファイル
      options - トラバースを構成するオプション
      戻り値:
      PathStream
      例外:
      SecurityException - セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。 デフォルト・プロバイダの場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
      IOException - 開始ファイルにアクセスしているときに入出力エラーがスローされる場合
      導入されたバージョン:
      1.8
      関連項目:
    • find

      public static Stream<Path> find(Path start, int maxDepth, BiPredicate<Path,BasicFileAttributes> matcher, FileVisitOption... options) throws IOException
      指定された開始ファイルをルートとするファイル・ツリー内でファイルを検索することで Pathが遅延設定されるStreamを返します。

      このメソッドは、walkメソッドで指定されたとおりにファイル・ツリーを参照します。 検出されたファイルごとに、そのPathおよびBasicFileAttributesを使用して、指定されたBiPredicateが呼び出されます。 Pathオブジェクトは、 startに対して相対パスを解決したかのように取得され、BiPredicateがtrueを返す場合にのみ、返されるStreamに含められます。 walkメソッドによって返されるStreamに対してfilterを呼び出すことと比較して、このメソッドは、BasicFileAttributesの冗長な取得を回避することでより効率的な場合があります。

      返されるストリームには、1つ以上のオープン・ディレクトリへの参照が含まれます。 ディレクトリを閉じるには、ストリームを閉じます。

      このメソッドからの復帰後にディレクトリにアクセスするときにIOExceptionがスローされる場合、アクセスが発生する原因となったメソッドからスローされるUncheckedIOExceptionにラップされます。

      APIのノート:
      このメソッドは、try-with-resources文または類似の制御構造内で使用して、ストリーム操作が完了した後にストリームのオープン・ディレクトリがすぐに閉じられるようにする必要があります。
      パラメータ:
      start - 開始ファイル
      maxDepth - 検索するディレクトリ・レベルの最大数
      matcher - 返されるストリームにファイルを含める必要があるかどうかの判定に使用される関数
      options - トラバースを構成するオプション
      戻り値:
      PathStream
      例外:
      IllegalArgumentException - maxDepthパラメータが負の値の場合
      SecurityException - セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。 デフォルト・プロバイダの場合は、checkReadメソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。
      IOException - 開始ファイルにアクセスしているときに入出力エラーがスローされる場合
      導入されたバージョン:
      1.8
      関連項目:
    • lines

      public static Stream<String> lines(Path path, Charset cs) throws IOException
      ファイル内のすべての行をStreamとして読み取ります。 readAllLinesとは異なり、このメソッドはすべての行をListに読み込むことはしませんが、ストリームが消費されたときに遅延設定します。

      ファイルから取得したバイトは指定された文字セットを使用して文字にデコードされ、 readAllLinesで指定されているものと同じ行末記号がサポートされます。

      返されるストリームには、開いているファイルへの参照が含まれます。 ファイルを閉じるには、ストリームを閉じます。

      ターミナル・ストリーム操作の実行中は、ファイルの内容を変更しないでください。 そうしない場合、ストリーム終端操作の結果は保証されません。

      このメソッドが復帰した後、ファイルからの読取り中、または形式が間違っているか、またはマップできないバイト・シーケンスが読み取られるときに発生するすべての後続の入出力例外は、読取りが発生する原因となったStreamのメソッドからスローされるUncheckedIOExceptionにラップされます。 ファイルのクローズ時にIOExceptionがスローされる場合、これもUncheckedIOExceptionとしてラップされます。

      APIのノート:
      このメソッドは、try-with-resources文または類似の制御構造内で使用して、ストリーム操作が完了した後にストリームのオープン・ファイルがすぐに閉じられるようにする必要があります。
      実装上のノート:
      この実装は、標準の文字セットUTF-8US-ASCII、およびISO-8859-1の良好な並列ストリーム・パフォーマンスをサポートしています。 このようなline-optimal文字セットには、ファイルのバイトにランダムにアクセスするときに、改行('')またはキャリッジ・リターン('\r')のエンコードされたバイトが他のエンコードされた文字から効率的に識別できるというプロパティがあります。

      line-optimal文字セットの場合、ストリーム・ソースのスプライテータは、プア分割プロパティを持ち、イテレータに関連付けられたスプライテータ、またはBufferedReader.lines()から返されるストリームに関連付けられたスプライテータのそれに似ています。 分割特性が悪いと、並列ストリームのパフォーマンスが低下する可能性があります。

      line-optimal charsetsの場合、ファイルに通常の一連の行が含まれていると仮定すると、ストリーム・ソースspliteratorの分割プロパティは良好です。 良好な分割特性は良好な並列ストリーム性能をもたらすことができます。 line-optimal文字セット用のスプライテータは、文字セット・プロパティ(効率的に識別可能な改行または改行)を利用して、分割するときに、ほぼ覆い線の数を半分に分割できるようにします。

      パラメータ:
      path - ファイルへのパス
      cs - デコードに使用する文字セット
      戻り値:
      ファイルから1つのStreamとして読み取られた行
      例外:
      IOException - ファイルのオープン中に入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      1.8
      関連項目:
    • lines

      public static Stream<String> lines(Path path) throws IOException
      ファイル内のすべての行をStreamとして読み取ります。 ファイルから取得したバイトは、UTF-8文字セットを使用して文字にデコードされます。

      返されるストリームには、開いているファイルへの参照が含まれます。 ファイルを閉じるには、ストリームを閉じます。

      ターミナル・ストリーム操作の実行中は、ファイルの内容を変更しないでください。 そうしない場合、ストリーム終端操作の結果は保証されません。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      Files.lines(path, StandardCharsets.UTF_8)

      APIのノート:
      このメソッドは、try-with-resources文または類似の制御構造内で使用して、ストリーム操作が完了した後にストリームのオープン・ファイルがすぐに閉じられるようにする必要があります。
      パラメータ:
      path - ファイルへのパス
      戻り値:
      ファイルから1つのStreamとして読み取られた行
      例外:
      IOException - ファイルのオープン中に入出力エラーが発生した場合
      SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されてファイルへの読取りアクセスがチェックされます。
      導入されたバージョン:
      1.8