public final class Files extends Object
ほとんどの場合、ここで定義されているメソッドは関連付けられたファイル・システム・プロバイダにファイル操作の実行を委譲します。
修飾子と型 | メソッドと説明 |
---|---|
static long |
copy(InputStream in, Path target, CopyOption... options)
すべてのバイトを入力ストリームからファイルにコピーします。
|
static long |
copy(Path source, OutputStream out)
すべてのバイトをファイルから出力ストリームにコピーします。
|
static Path |
copy(Path source, Path target, CopyOption... options)
ファイルをターゲット・ファイルにコピーします。
|
static Path |
createDirectories(Path dir, FileAttribute<?>... attrs)
存在しないすべての親ディレクトリをまず作成することで、ディレクトリを作成します。
|
static Path |
createDirectory(Path dir, FileAttribute<?>... attrs)
新しいディレクトリを作成します。
|
static Path |
createFile(Path path, FileAttribute<?>... attrs)
新しい空のファイルを作成し、ファイルがすでに存在する場合は失敗します。
|
static Path |
createLink(Path link, Path existing)
既存のファイルに対して新しいリンク(ディレクトリ・エントリ)を作成します(オプションの操作)。
|
static Path |
createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs)
ターゲットへのシンボリック・リンクを作成します(オプションの操作)。
|
static Path |
createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)
指定されたディレクトリで新しいディレクトリを生成し、その名前には、指定された接頭辞が使用されます。
|
static Path |
createTempDirectory(String prefix, FileAttribute<?>... attrs)
デフォルトの一時ファイル・ディレクトリで新しいディレクトリを生成し、その名前には、指定された接頭辞が使用されます。
|
static Path |
createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs)
指定されたディレクトリで新しい空のファイルを生成し、その名前には、指定された接頭辞および接尾辞の文字列が使用されます。
|
static Path |
createTempFile(String prefix, String suffix, FileAttribute<?>... attrs)
指定された接頭辞と接尾辞をファイル名の生成に使用して、デフォルトの一時ファイル・ディレクトリに空のファイルを生成します。
|
static void |
delete(Path path)
ファイルを削除します。
|
static boolean |
deleteIfExists(Path path)
ファイルが存在する場合は削除します。
|
static boolean |
exists(Path path, LinkOption... options)
ファイルが存在するかどうかをテストします。
|
static Stream<Path> |
find(Path start, int maxDepth, BiPredicate<Path,BasicFileAttributes> matcher, FileVisitOption... options)
指定された開始ファイルをルートとするファイル・ツリー内でファイルを検索することで
Path が遅延設定されるStream を返します。 |
static Object |
getAttribute(Path path, String attribute, LinkOption... options)
ファイル属性の値を読み取ります。
|
static <V extends FileAttributeView> |
getFileAttributeView(Path path, Class<V> type, LinkOption... options)
指定されたタイプのファイル属性ビューを返します。
|
static FileStore |
getFileStore(Path path)
ファイルが置かれているファイル・ストアを表す
FileStore を返します。 |
static FileTime |
getLastModifiedTime(Path path, LinkOption... options)
ファイルの最終変更時間を返します。
|
static UserPrincipal |
getOwner(Path path, LinkOption... options)
ファイルの所有者を返します。
|
static Set<PosixFilePermission> |
getPosixFilePermissions(Path path, LinkOption... options)
ファイルのPOSIXファイル・アクセス権を返します。
|
static boolean |
isDirectory(Path path, LinkOption... options)
ファイルがディレクトリかどうかをテストします。
|
static boolean |
isExecutable(Path path)
ファイルが実行可能かどうかをテストします。
|
static boolean |
isHidden(Path path)
ファイルが隠しファイルとみなされるかどうかを判断します。
|
static boolean |
isReadable(Path path)
ファイルが読取り可能かどうかをテストします。
|
static boolean |
isRegularFile(Path path, LinkOption... options)
ファイルが不透明な内容の通常ファイルかどうかをテストします。
|
static boolean |
isSameFile(Path path, Path path2)
2つのパスが同じファイルを検出するかどうかを判断します。
|
static boolean |
isSymbolicLink(Path path)
ファイルがシンボリック・リンクかどうかをテストします。
|
static boolean |
isWritable(Path path)
ファイルが書込み可能かどうかをテストします。
|
static Stream<String> |
lines(Path path)
ファイル内のすべての行を
Stream として読み取ります。 |
static Stream<String> |
lines(Path path, Charset cs)
ファイル内のすべての行を
Stream として読み取ります。 |
static Stream<Path> |
list(Path dir)
ディレクトリ内のエントリを要素に持つ遅延設定
Stream を返します。 |
static Path |
move(Path source, Path target, CopyOption... options)
ファイルをターゲット・ファイルに移動するか、そのファイル名を変更します。
|
static BufferedReader |
newBufferedReader(Path path)
ファイルを読込み用に開き、効率的な方法でファイルからテキストを読み込む
BufferedReader を返します。 |
static BufferedReader |
newBufferedReader(Path path, Charset cs)
ファイルを読取り用に開き、そのファイルから効果的な方法でテキストを読み取るために使用できる
BufferedReader を返します。 |
static BufferedWriter |
newBufferedWriter(Path path, Charset cs, OpenOption... options)
ファイルを書込み用に開くか作成して、そのファイルに効果的な方法でテキストを書き込むために使用できる
BufferedWriter を返します。 |
static BufferedWriter |
newBufferedWriter(Path path, OpenOption... options)
ファイルを書込み用に開くか作成し、効率的な方法でファイルにテキストを書き込む
BufferedWriter を返します。 |
static SeekableByteChannel |
newByteChannel(Path path, OpenOption... options)
ファイルを開くか作成し、そのファイルにアクセスするためのシーク可能なバイト・チャネルを返します。
|
static SeekableByteChannel |
newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
ファイルを開くか作成し、そのファイルにアクセスするためのシーク可能なバイト・チャネルを返します。
|
static DirectoryStream<Path> |
newDirectoryStream(Path dir)
ディレクトリを開き、ディレクトリ内のすべてのエントリを反復するための
DirectoryStream を返します。 |
static DirectoryStream<Path> |
newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
ディレクトリを開き、そのディレクトリ内のエントリに対して反復処理を行う
DirectoryStream を返します。 |
static DirectoryStream<Path> |
newDirectoryStream(Path dir, String glob)
ディレクトリを開き、そのディレクトリ内のエントリに対して反復処理を行う
DirectoryStream を返します。 |
static InputStream |
newInputStream(Path path, OpenOption... options)
ファイルを開き、そのファイルから読み取る入力ストリームを返します。
|
static OutputStream |
newOutputStream(Path path, OpenOption... options)
ファイルを開くか作成して、そのファイルにバイトを書き込むために使用できる出力ストリームを返します。
|
static boolean |
notExists(Path path, LinkOption... options)
このパスが示すファイルが存在しないかどうかをテストします。
|
static String |
probeContentType(Path path)
ファイルのコンテンツ・タイプを調べます。
|
static byte[] |
readAllBytes(Path path)
ファイルからすべてのバイトを読み取ります。
|
static List<String> |
readAllLines(Path path)
ファイルからすべての行を読み取ります。
|
static List<String> |
readAllLines(Path path, Charset cs)
ファイルからすべての行を読み取ります。
|
static <A extends BasicFileAttributes> |
readAttributes(Path path, Class<A> type, LinkOption... options)
一括操作としてファイル属性を読み取ります。
|
static Map<String,Object> |
readAttributes(Path path, String attributes, LinkOption... options)
一括操作として一連のファイル属性を読み取ります。
|
static Path |
readSymbolicLink(Path link)
シンボリック・リンクのターゲットを読み取ります(オプションの操作)。
|
static Path |
setAttribute(Path path, String attribute, Object value, LinkOption... options)
ファイル属性の値を設定します。
|
static Path |
setLastModifiedTime(Path path, FileTime time)
ファイルの最終変更時間属性を更新します。
|
static Path |
setOwner(Path path, UserPrincipal owner)
ファイル所有者を更新します。
|
static Path |
setPosixFilePermissions(Path path, Set<PosixFilePermission> perms)
ファイルのPOSIXファイル・アクセス権を設定します。
|
static long |
size(Path path)
ファイルのサイズをバイトで返します。
|
static Stream<Path> |
walk(Path start, FileVisitOption... options)
指定された開始ファイルをルートとするファイル・ツリーを参照することで
Path が遅延移入されるStream を返します。 |
static Stream<Path> |
walk(Path start, int maxDepth, FileVisitOption... options)
指定された開始ファイルをルートとするファイル・ツリーを参照することで
Path が遅延移入されるStream を返します。 |
static Path |
walkFileTree(Path start, FileVisitor<? super Path> visitor)
ファイル・ツリーを参照します。
|
static Path |
walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor)
ファイル・ツリーを参照します。
|
static Path |
write(Path path, byte[] bytes, OpenOption... options)
バイトをファイルに書き込みます。
|
static Path |
write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)
テキスト行をファイルに書き込みます。
|
static Path |
write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options)
テキスト行をファイルに書き込みます。
|
public static InputStream newInputStream(Path path, OpenOption... options) throws IOException
mark
またはreset
メソッドをサポートしている必要はありません。ストリームは複数の並行スレッドからのアクセスに対して安全です。読取りはファイルの最初から始まります。返されるストリームが非同期クローズ可能または割込み可能、あるいはその両方かどうかは、ファイル・システム・プロバイダによって大きく異なるため、未指定です。
options
パラメータはファイルを開く方法を決定します。オプションが1つも存在しない場合、それはREAD
オプションでファイルを開くことと同等です。実装では、READ
オプションのほかに、追加の実装固有のオプションをサポートすることもあります。
path
- 開くファイルへのパスoptions
- ファイルを開く方法を指定するオプションIllegalArgumentException
- オプションの無効な組み合わせが指定された場合UnsupportedOperationException
- 未サポートのオプションが指定された場合IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。public static OutputStream newOutputStream(Path path, OpenOption... options) throws IOException
このメソッドは、オプションの配列にREAD
オプションが含まれない可能性があることを除いては、newByteChannel
メソッドで指定されたとおりにファイルを開くか作成します。オプションがない場合、このメソッドはCREATE
、TRUNCATE_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
- 未サポートのオプションが指定された場合IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。DELETE_ON_CLOSE
オプションでファイルが開かれた場合は、checkDelete
メソッドが呼び出されて削除アクセスがチェックされます。public static SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
options
パラメータはファイルを開く方法を決定します。READ
とWRITE
オプションにより、ファイルを読み取りまたは書込みで開くべきかどうかが決定されます。いずれのオプション(または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
オプションが指定された場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ファイルが読取り用に開かれるとcheckRead
メソッドが呼び出されてパスへの読取りアクセスがチェックされます。ファイルが書込み用に開かれた場合は、checkWrite
メソッドが呼び出されてパスへの書込みアクセスがチェックされます。DELETE_ON_CLOSE
オプションでファイルが開かれた場合は、checkDelete
メソッドが呼び出されて削除アクセスがチェックされます。FileChannel.open(Path,Set,FileAttribute[])
public static SeekableByteChannel newByteChannel(Path path, OpenOption... options) throws IOException
このメソッドは、newByteChannel
メソッドで指定されたとおりにファイルを開くか作成します。
path
- 開くまたは作成するファイルへのパスoptions
- ファイルを開く方法を指定するオプションIllegalArgumentException
- セットにオプションの無効な組み合わせが含まれる場合UnsupportedOperationException
- サポートされていないオープン・オプションが指定された場合FileAlreadyExistsException
- その名前のファイルがすでに存在する場合、およびCREATE_NEW
オプションが指定された場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、ファイルが読取り用に開かれるとcheckRead
メソッドが呼び出されてパスへの読取りアクセスがチェックされます。ファイルが書込み用に開かれた場合は、checkWrite
メソッドが呼び出されてパスへの書込みアクセスがチェックされます。DELETE_ON_CLOSE
オプションでファイルが開かれた場合は、checkDelete
メソッドが呼び出されて削除アクセスがチェックされます。FileChannel.open(Path,OpenOption[])
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
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。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
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。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
がスローされた場合は、そのIOException
を原因として含むDirectoryIteratorException
がhasNext
またはnext
メソッドによってスローされます。
ディレクトリ内のエントリに対して競合のない方法で実行する操作を実装がサポートする場合は、返されるディレクトリ・ストリームは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
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。public static Path createFile(Path path, FileAttribute<?>... attrs) throws IOException
attrs
パラメータは、ファイルの作成時に原子的に設定するオプションのファイル属性
です。各属性はそのname
で識別されます。配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。
path
- 作成するファイルへのパスattrs
- ファイルの作成時に原子的に設定されるファイル属性のオプションのリストUnsupportedOperationException
- ファイルの作成時に原子的に設定できない属性が配列に含まれる場合FileAlreadyExistsException
- その名前のファイルがすでに存在する場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合または親ディレクトリが存在しない場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されて新しいファイルへの書込みアクセスがチェックされます。public static Path createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException
createDirectories
メソッドを使用するようにしてください。
attrs
パラメータは、ディレクトリの作成時に原子的に設定するオプションのファイル属性
です。各属性はそのname
で識別されます。配列に同じ名前の属性が複数含まれる場合は、最後のもの以外はすべて無視されます。
dir
- 作成するディレクトリattrs
- ディレクトリの作成時に原子的に設定されるファイル属性のオプションのリストUnsupportedOperationException
- ディレクトリの作成時に原子的に設定できない属性が配列に含まれる場合FileAlreadyExistsException
- その名前のファイルがすでに存在するためにディレクトリを作成できなかった場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合または親ディレクトリが存在しない場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されて新しいディレクトリへの書込みアクセスがチェックされます。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
へのアクセスがチェックされることがあります。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
メソッドと同様に、このメソッドは一時ファイル機能の一部に過ぎません。作業ファイルとして使用する場合は、結果となるファイルをDELETE_ON_CLOSE
オプションを使って開き、適切な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
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。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
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。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
メソッドが呼び出されて書込みアクセスがチェックされます。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
メソッドが呼び出されて書込みアクセスがチェックされます。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
メソッドがシンボリック・リンクのパスへの書込みアクセスを拒否する場合。public static Path createLink(Path link, Path existing) throws IOException
link
パラメータは、作成するディレクトリ・エントリを検出します。existing
パラメータは、既存のファイルへのパスです。このメソッドは、そのファイルの新しいディレクトリ・エントリを作成することで、link
をパスとして使用してそれにアクセスできるようにします。一部のファイル・システムでは、これは「ハード・リンク」の作成として知られています。ファイル属性がそのファイルのために保持されるか、またはディレクトリ・エントリごとに保持されるかは、ファイル・システムに固有であるため、特定できません。通常、ファイル・システムでは、1つのファイルのすべてのリンク(ディレクトリ・エントリ)が同じファイル・システム上にある必要があります。さらに、一部のプラットフォームでは、ハード・リンクを作成するか、ディレクトリへのリンクを作成するためにJava仮想マシンを実装固有の特権で起動することが必要な場合もあります。
link
- 作成するリンク(ディレクトリ・エントリ)existing
- 既存のファイルへのパスUnsupportedOperationException
- 実装が、既存のファイルをディレクトリに追加することをサポートしない場合FileAlreadyExistsException
- その名前のファイルがすでに存在するためにエントリを作成できなかった場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがLinkPermission
("hard")を拒否するか、またはそのcheckWrite
メソッドがリンクまたは既存のファイルへの書込みアクセスを拒否する場合。public static void delete(Path path) throws IOException
実装では、ファイルがディレクトリかどうかを判断するためにファイルを検査することが必要な場合があります。その結果、このメソッドはほかのファイル・システム操作に関して原始的でない可能性があります。ファイルがシンボリック・リンクの場合、そのリンクの最終ターゲットではなく、そのシンボリック・リンク自体が削除されます。
ファイルがディレクトリの場合、ディレクトリは空である必要があります。一部の実装では、ディレクトリの作成時に作成される特殊なファイルやリンクのエントリがディレクトリに存在します。このような実装では、ディレクトリは特殊なエントリのみが存在する場合に空であるとみなされます。このメソッドをwalkFileTree
メソッドとともに使用すると、必要に応じてディレクトリとそのディレクトリ内のすべてのエントリを削除したり、ファイル・ツリー全体を削除したりすることができます。
一部のオペレーシング・システムでは、このJava仮想マシンまたはほかのプログラムによって開かれて使用されているファイルを削除できない場合があります。
path
- 削除するファイルへのパスNoSuchFileException
- ファイルが存在しない場合(オプションの固有例外)DirectoryNotEmptyException
- ファイルがディレクトリで、ディレクトリが空でないために削除できなかった場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、SecurityManager.checkDelete(String)
メソッドが呼び出されてファイルへの削除アクセスがチェックされます。public static boolean deleteIfExists(Path path) throws IOException
delete(Path)
メソッドと同様に、実装では、ファイルがディレクトリかどうかを判断するためにファイルを検査することが必要な場合があります。その結果、このメソッドはほかのファイル・システム操作に関して原始的でない可能性があります。ファイルがシンボリック・リンクの場合、そのリンクの最終ターゲットではなく、そのシンボリック・リンク自体が削除されます。
ファイルがディレクトリの場合、ディレクトリは空である必要があります。一部の実装では、ディレクトリの作成時に作成される特殊なファイルやリンクのエントリがディレクトリに存在します。このような実装では、ディレクトリは特殊なエントリのみが存在する場合に空であるとみなされます。
一部のオペレーシング・システムでは、このJava仮想マシンまたはほかのプログラムによって開かれて使用されているファイルを削除できない場合があります。
path
- 削除するファイルへのパスtrue
、ファイルが存在しないために削除できなかった場合はfalse
DirectoryNotEmptyException
- ファイルがディレクトリで、ディレクトリが空でないために削除できなかった場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、SecurityManager.checkDelete(String)
メソッドが呼び出されてファイルへの削除アクセスがチェックされます。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")
がチェックされます。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
オプションが指定されているけれども、空でないディレクトリであるために置換できない場合(オプションの固有例外)AtomicMoveNotSupportedException
- オプション配列にATOMIC_MOVE
オプションを含まれるけれども、原子的なファイル・システム操作としてファイルを移動できない場合。IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてソースおよびターゲット・ファイルの両方への書込みアクセスがチェックされます。public static Path readSymbolicLink(Path link) throws IOException
ファイル・システムがシンボリック・リンクをサポートしている場合、このメソッドはそのリンクのターゲットを読み取るために使用され、ファイルがシンボリック・リンクでない場合は失敗します。そのリンクのターゲットは存在しなくてもかまいません。返されるPath
オブジェクトは、link
と同じファイル・システムに関連付けられます。
link
- シンボリック・リンクへのパスPath
オブジェクトUnsupportedOperationException
- この実装がシンボリック・リンクをサポートしていない場合。NotLinkException
- ファイルがシンボリック・リンクではないためにターゲットを読み取れなかった場合(オプションの固有例外)IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、リンクを読み取る"readlink
"アクションにFilePermission
が付与されていることがチェックされます。public static FileStore getFileStore(Path path) throws IOException
FileStore
を返します。
FileStore
への参照が取得されると、返されたFileStore
に対する操作や、そこから取得されるFileStoreAttributeView
オブジェクトが引き続きそのファイルの存在に左右されるのかどうかは実装に固有です。特に、ファイルが削除されたり、別のファイル・ストアに移動されたりする場合では、この動作を特定できません。
path
- ファイルへのパスIOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされ、さらにRuntimePermission
("getFileStoreAttributes")もチェックされます。public static boolean isSameFile(Path path, Path path2) throws IOException
両方のPath
オブジェクトが等しい
場合、このメソッドはファイルが存在するかどうかを判定せずにtrue
を返します。2つのPath
オブジェクトが別々のプロバイダに関連付けられている場合、このメソッドはfalse
を返します。それ以外の場合、このメソッドは両方のPath
オブジェクトが同じファイルを検出するかどうかを判定し、実装によっては、両方のファイルを開くか、それにアクセスすることが必要になる場合があります。
ファイル・システムやファイルがstaticのままである場合、このメソッドはnull以外のPath
に対して同値関係を実装します。
パス
f
について、isSameFile(f,f)
はtrue
を返します。
パス
f
およびg
について、isSameFile(f,g)
はisSameFile(g,f)
と同等です。
パス
f
、g
、およびh
について、isSameFile(f,g)
がtrue
を返し、isSameFile(g,h)
がtrue
を返す場合、isSameFile(f,h)
はtrue
を返します。
path
- ファイルへの一方のパスpath2
- もう一方のパスtrue
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されて2つのファイルへの読取りアクセスがチェックされます。BasicFileAttributes.fileKey()
public static boolean isHidden(Path path) throws IOException
hidden
属性が設定されているファイルが隠しファイルとみなされます。
実装によっては、このメソッドは、ファイルが隠しファイルとみなされるかどうかを判断するためにファイル・システムにアクセスすることが必要になる場合があります。
path
- テストするファイルへのパスtrue
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。public static String probeContentType(Path path) throws IOException
このメソッドは、インストールされているFileTypeDetector
の実装を使用して、指定されたファイルを調査し、そのコンテンツ・タイプを特定します。各ファイル・タイプ・ディテクタのprobeContentType
が順番に呼び出されて、ファイル・タイプが調査されます。ファイルが認識される場合は、コンテンツ・タイプが返されます。インストールされているどのファイル・タイプ・ディテクタによってもファイルが認識されない場合は、システム・デフォルトのファイル・タイプ・ディテクタが呼び出されてコンテンツ・タイプが推測されます。
Java仮想マシンのある特定の呼出しで、システム全体のファイル・タイプ・ディテクタ・リストが保持されます。インストールされているファイル・タイプ・ディテクタのロードには、ServiceLoader
クラスで定義されているサービス・プロバイダのロード機能が使用されます。インストールされているファイル・タイプ・ディテクタのロードにはシステム・クラス・ローダーが使用されます。システム・クラス・ローダーが見つからない場合は拡張クラス・ローダーが使用され、拡張クラス・ローダーが見つからない場合はブートストラップ・クラス・ローダーが使用されます。通常、インストールされるファイル・タイプ・ディテクタはアプリケーション・クラス・パス上のJARファイルまたは拡張ディレクトリ内に配置されます。そのJARファイルのリソース・ディレクトリMETA-INF/services
にはjava.nio.file.spi.FileTypeDetector
というプロバイダ構成ファイルが含まれており、そのファイルには引数なしのコンストラクタを持つFileTypeDetector
の具象サブクラスの1つまたは複数の完全修飾名が一覧表示されます。インストールされているファイル・タイプ・ディテクタの検索またはインスタンス化のプロセスが失敗すると、特定できないエラーがスローされます。インストールされているプロバイダの検索順序は実装によって異なります。
このメソッドの戻り値は、RFC 2045「MIME (Multipurpose Internet Mail Extensions)のパート1: インターネット・メッセージ本文の形式」で定義されている、MIME (Multipurpose Internet Mail Extension)コンテンツ・タイプの文字列形式の値になります。この文字列は、RFCの文法に従って構文解析可能であることが保証されています。
path
- 調査するファイルへのパスnull
IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャがインストールされ、それがファイル・タイプ・ディテクタ実装に必要な未指定のアクセス権を拒否する場合。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
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
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。このメソッドが、セキュリティ保護を必要とする属性を読み取るために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。public static Path setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException
attribute
パラメータは、設定する属性を識別し、次の形式をとります。
[view-name:]attribute-nameここで、角カッコ[...]はオプションのコンポーネントを表し、文字
':'
はそれ自体を表します。
view-nameは、ファイル属性のセットを指定する、FileAttributeView
のname
です。これを指定しない場合は、デフォルトで"basic"
(多くのファイル・システムに共通するファイル属性の基本セットを識別するファイル属性ビューの名前)になります。attribute-nameはそのセット内の属性の名前です。
options
配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトでは、シンボリック・リンクがたどられ、そのリンクの最終ターゲットのファイル属性が設定されます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
使用例: DOSの「hidden」属性を設定するとします。
Path path = ... Files.setAttribute(path, "dos:hidden", true);
path
- ファイルへのパスattribute
- 設定する属性value
- 属性値options
- シンボリック・リンクの処理方法を示すオプションpath
パラメータUnsupportedOperationException
- 属性ビューが使用できない場合IllegalArgumentException
- 属性名が指定されない場合、または認識されない場合、または属性値の型は正しいが値が不適切な場合ClassCastException
- 属性値が予想される型でないか、予想される型でない要素を含むコレクションである場合IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckWrite
メソッドがファイルへの書込みアクセスを拒否する場合。このメソッドが、セキュリティ保護を必要とする属性を設定するために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。public static Object getAttribute(Path path, String attribute, LinkOption... options) throws IOException
attribute
パラメータは、読み取る属性を指定し、次の形式をとります。
[view-name:]attribute-nameここで、角カッコ[...]はオプションのコンポーネントを表し、文字
':'
はそれ自体を表します。
view-nameは、ファイル属性のセットを指定する、FileAttributeView
のname
です。これを指定しない場合は、デフォルトで"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
メソッドがファイルへの読取りアクセスを拒否する場合。このメソッドが、セキュリティ保護を必要とする属性を読み取るために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。public static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options) throws IOException
attributes
パラメータは、読み取る属性を識別し、次の形式をとります。
[view-name:]attribute-listここで、角カッコ[...]はオプションのコンポーネントを表し、文字
':'
はそれ自体を表します。
view-nameは、ファイル属性のセットを指定する、FileAttributeView
のname
です。これを指定しない場合は、デフォルトで"basic"
(多くのファイル・システムに共通するファイル属性の基本セットを識別するファイル属性ビューの名前)になります。
attribute-listコンポーネントは、0個以上の読み取る属性の名前の、カンマで区切られたリストです。このリストに値"*"
が含まれている場合は、すべての属性が読み取られます。サポートされていない属性は無視され、返されるマップには含まれません。ほかのファイル・システム操作に関して、すべての属性が原子的操作として読み取られるかどうかは実装固有です。
次の例は、attributes
パラメータの使用可能な値を示しています。
"*"
すべての 基本ファイル属性
を読み取ります。"size,lastModifiedTime,lastAccessTime"
ファイル・サイズ、最終更新時間、および最終アクセス時間の属性を読み取ります。 "posix:*"
すべての POSIX-file-attributes
を読み取ります。"posix:permissions,owner,size"
POSIXファイル・アクセス権、所有者、およびファイル・サイズを読み取ります。
options
配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
path
- ファイルへのパスattributes
- 読み取る属性options
- シンボリック・リンクの処理方法を示すオプションUnsupportedOperationException
- 属性ビューが使用できない場合IllegalArgumentException
- 属性が指定されない場合または認識されない属性が指定された場合IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。このメソッドが、セキュリティ保護を必要とする属性を読み取るために呼び出された場合、セキュリティ・マネージャが呼び出されて追加のアクセス権をチェックする場合があります。public static Set<PosixFilePermission> getPosixFilePermissions(Path path, LinkOption... options) throws IOException
path
パラメータは、PosixFileAttributeView
をサポートするFileSystem
に関連付けられます。この属性ビューは、Portable Operating System Interface (POSIX)の標準ファミリを実装するオペレーティング・システムによって使用されるファイル・システムのファイルに一般的に関連付けられるファイル属性へのアクセスを提供します。
options
配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
path
- ファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプションUnsupportedOperationException
- 関連付けられるファイル・システムが次をサポートしない場合: PosixFileAttributeView
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission
("accessUserInformation")を拒否するか、またはそのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。public static Path setPosixFilePermissions(Path path, Set<PosixFilePermission> perms) throws IOException
path
パラメータは、PosixFileAttributeView
をサポートするFileSystem
に関連付けられます。この属性ビューは、Portable Operating System Interface (POSIX)の標準ファミリを実装するオペレーティング・システムによって使用されるファイル・システムのファイルに一般的に関連付けられるファイル属性へのアクセスを提供します。
path
- ファイルへのパスperms
- アクセス権の新しいセットUnsupportedOperationException
- 関連付けられるファイル・システムが次をサポートしない場合: PosixFileAttributeView
ClassCastException
- セットに次のタイプでない要素が含まれる場合: PosixFilePermission
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission
("accessUserInformation")を拒否するか、またはそのcheckWrite
メソッドがファイルへの書込みアクセスを拒否する場合。public static UserPrincipal getOwner(Path path, LinkOption... options) throws IOException
path
パラメータは、FileOwnerAttributeView
をサポートするファイル・システムに関連付けられます。このファイル属性ビューは、ファイルの所有者であるファイル属性へのアクセスを提供します。
path
- ファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプションUnsupportedOperationException
- 関連付けられるファイル・システムが次をサポートしない場合: FileOwnerAttributeView
IOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission
("accessUserInformation")を拒否するか、またはそのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。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
メソッドがファイルへの書込みアクセスを拒否する場合。FileSystem.getUserPrincipalLookupService()
, UserPrincipalLookupService
public static boolean isSymbolicLink(Path path)
入出力例外を、ファイルがシンボリック・リンクでないケースと区別する必要がある場合は、readAttributes
メソッドを使ってファイル属性を読み取ったり、BasicFileAttributes.isSymbolicLink()
メソッドを使ってファイル・タイプを判定したりできます。
path
- ファイルへのパスtrue
。ファイルが存在しないか、シンボリック・リンクでないか、またはファイルがシンボリック・リンクかどうかを判断できない場合はfalse
。SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。public static boolean isDirectory(Path path, LinkOption... options)
options
配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
入出力例外を、ファイルがディレクトリでないケースと区別する必要がある場合は、readAttributes
メソッドを使ってファイル属性を読み取ったり、BasicFileAttributes.isDirectory()
メソッドを使ってファイル・タイプを判定したりできます。
path
- テストするファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプションtrue
。ファイルが存在しないか、ディレクトリでないか、またはファイルがディレクトリかどうかを判断できない場合はfalse
。SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。public static boolean isRegularFile(Path path, LinkOption... options)
options
配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
入出力例外を、ファイルが通常ファイルでないケースと区別する必要がある場合は、readAttributes
メソッドを使ってファイル属性を読み取ったり、BasicFileAttributes.isRegularFile()
メソッドを使ってファイル・タイプを判定したりできます。
path
- ファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプションtrue
。ファイルが存在しないか、通常ファイルでないか、またはファイルが通常ファイルかどうかを判断できない場合はfalse
。SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。public static FileTime getLastModifiedTime(Path path, LinkOption... options) throws IOException
options
配列を使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトでは、シンボリック・リンクはたどられ、リンクの最終ターゲットのファイル属性が読み取られます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
path
- ファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプションFileTime
。最終変更時間を示すタイムスタンプがそのファイル・システムによってサポートされていない場合は実装固有のデフォルトIOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。BasicFileAttributes.lastModifiedTime()
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
メソッドが呼び出されてファイルへの書込みアクセスがチェックされますBasicFileAttributeView.setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime)
public static long size(Path path) throws IOException
通常
ファイルでないファイルのサイズは実装固有であるため未指定です。path
- ファイルへのパスIOException
- 入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、そのcheckRead
メソッドがファイルへの読取りアクセスを拒否する場合。BasicFileAttributes.size()
public static boolean exists(Path path, LinkOption... options)
options
パラメータを使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトではシンボリック・リンクはたどられます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
このメソッドの結果がすぐに古くなることに注意してください。このメソッドがファイルの存在を示したとしても、後続のアクセスが成功する保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path
- テストするファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプション。true
。ファイルが存在しないか、その存在を判断できない場合はfalse
。SecurityException
- デフォルト・プロバイダの場合は、SecurityManager.checkRead(String)
が呼び出されてファイルへの読取りアクセスがチェックされます。notExists(java.nio.file.Path, java.nio.file.LinkOption...)
public static boolean notExists(Path path, LinkOption... options)
options
パラメータを使用すると、ファイルがシンボリック・リンクである場合のシンボリック・リンクの処理方法を指定できます。デフォルトではシンボリック・リンクはたどられます。オプションNOFOLLOW_LINKS
が存在する場合は、シンボリック・リンクはたどられません。
このメソッドがexists
メソッドを補足するものではないことに注意してください。ファイルが存在するかどうか判断できない場合は、どちらのメソッドもfalse
を返します。exists
メソッドと同様に、このメソッドの結果もすぐに古くなります。このメソッドがファイルの存在を示したとしても、そのあとのファイルを作成する試みが成功する保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path
- テストするファイルへのパスoptions
- シンボリック・リンクの処理方法を示すオプションtrue
。ファイルが存在するか、その存在を判断できない場合はfalse
SecurityException
- デフォルト・プロバイダの場合は、SecurityManager.checkRead(String)
が呼び出されてファイルへの読取りアクセスがチェックされます。public static boolean isReadable(Path path)
このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを読取り用に開く試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path
- チェックするファイルへのパスtrue
。ファイルが存在しないか、Java仮想マシンに十分な特権がないために読取りアクセスが拒否されるか、またはアクセスを判断できない場合はfalse
SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
が呼び出されてファイルへの読取りアクセスがチェックされます。public static boolean isWritable(Path path)
このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを書込み用に開く試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path
- チェックするファイルへのパスtrue
。ファイルが存在しないか、Java仮想マシンに十分な特権がないために書込みアクセスが拒否されるか、またはアクセスを判断できない場合はfalse
SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
が呼び出されてファイルへの書込みアクセスがチェックされます。public static boolean isExecutable(Path path)
実行する
ための適切な特権があることを確認します。ディレクトリへのアクセスをチェックする場合はセマンティックスが異なる場合があります。たとえば、UNIXシステムでは、実行アクセスのチェックを行うと、Java仮想マシンに、ファイルまたはサブディレクトリにアクセスするためにディレクトリを検索する権限があることが確認されます。
実装によっては、このメソッドが、ファイルへの効果的なアクセスをチェックするために、ファイル・アクセス権、アクセス制御リスト、またはその他のファイル属性を読み取る必要がある場合があります。その結果、このメソッドはほかのファイル・システムの操作に関して原始的でない可能性があります。
このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを実行する試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path
- チェックするファイルへのパスtrue
。ファイルが存在しないか、Java仮想マシンに十分な特権がないために実行アクセスが拒否されるか、またはアクセスを判断できない場合はfalse
SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkExec
が呼び出されてファイルへの実行アクセスがチェックされます。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
- ビジター・メソッドによって入出力エラーがスローされた場合public static Path walkFileTree(Path start, FileVisitor<? super Path> visitor) throws IOException
このメソッドの呼出しは、式を評価することと同様に動作します。
つまり、それはシンボリック・リンクをたどらず、ファイル・ツリーのすべてのレベルをビジットします。walkFileTree(start, EnumSet.noneOf(FileVisitOption.class), Integer.MAX_VALUE, visitor)
start
- 開始ファイルvisitor
- 各ファイルに対して呼び出すファイル・ビジターSecurityException
- セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。デフォルト・プロバイダの場合は、checkRead
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。IOException
- ビジター・メソッドによって入出力エラーがスローされた場合public static BufferedReader newBufferedReader(Path path, Charset cs) throws IOException
BufferedReader
を返します。ファイルから取得したバイトは、指定された文字セットを使用して文字にデコードされます。読取りはファイルの最初から始まります。
ファイルから読み取るReader
メソッドは、形式が間違っているか、またはマップできないバイト・シーケンスが読み取られた場合にIOException
をスローします。
path
- ファイルへのパスcs
- デコードに使用する文字セットIOException
- ファイルのオープン中に入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。readAllLines(java.nio.file.Path, java.nio.charset.Charset)
public static BufferedReader newBufferedReader(Path path) throws IOException
BufferedReader
を返します。ファイルから取得したバイトは、UTF-8
文字セット
を使用して文字にデコードされます。
このメソッドの呼出しは、式を評価することと同様に動作します。
Files.newBufferedReader(path, StandardCharsets.UTF_8)
path
- ファイルへのパスIOException
- ファイルのオープン中に入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。public static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options) throws IOException
BufferedWriter
を返します。options
パラメータはファイルを作成または開く方法を指定します。オプションがない場合、このメソッドはCREATE
、TRUNCATE_EXISTING
、およびWRITE
オプションがあるかのように機能します。つまり、書込み用にファイルを開きます(存在しない場合は作成し、存在する場合は最初に既存の通常ファイル
をサイズ0
に切り詰めます)。
テキストを書き込むWriter
メソッドは、指定された文字セットを使ってテキストをエンコードできない場合にIOException
をスローします。
path
- ファイルへのパスcs
- エンコードに使用する文字セットoptions
- ファイルを開く方法を指定するオプションIOException
- ファイルのオープンまたは作成中に入出力エラーが発生した場合UnsupportedOperationException
- 未サポートのオプションが指定された場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。write(Path,Iterable,Charset,OpenOption[])
public static BufferedWriter newBufferedWriter(Path path, OpenOption... options) throws IOException
BufferedWriter
を返します。テキストは、UTF-8
文字セット
を使用して書込み用にバイトにエンコードされます。
このメソッドの呼出しは、式を評価することと同様に動作します。
Files.newBufferedWriter(path, StandardCharsets.UTF_8, options)
path
- ファイルへのパスoptions
- ファイルを開く方法を指定するオプションIOException
- ファイルのオープンまたは作成中に入出力エラーが発生した場合UnsupportedOperationException
- 未サポートのオプションが指定された場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。public static long copy(InputStream in, Path target, CopyOption... options) throws IOException
デフォルトでは、ターゲット・ファイルがすでに存在するか、シンボリック・リンクである場合、コピーは失敗します。REPLACE_EXISTING
オプションが指定されていて、ターゲット・ファイルがすでに存在する場合は、それが空でないディレクトリでなければ置換されます。ターゲット・ファイルが存在し、それがシンボリック・リンクである場合は、そのシンボリック・リンクが置換されます。このリリースでは、REPLACE_EXISTING
オプションは、このメソッドでサポートされる必要のある唯一のオプションです。将来のリリースでは、追加のオプションがサポートされる可能性があります。
入力ストリームからの読取り中またはファイルへの書込み中に入出力エラーが発生する場合は、ターゲット・ファイルが作成されたあとや、数バイトが読み取られたり、書き込まれたりしたあとでそうなることがあります。その結果、入力ストリームがストリームの終わりに配置されず、整合性のない状態になる可能性があります。入出力エラーが発生した場合は入力ストリームをただちにクローズすることを強くお薦めします。
このメソッドは、入力ストリームからの読み取り(またはファイルへの書き込み)を無期限にブロックすることがあります。コピー中に入力ストリームが非同期クローズされたり、スレッドの割込みが発生したりした場合の動作は、入力ストリームやファイル・システム・プロバイダによって大きく異なるため、特定できません。
使用例: Webページを取得し、それをファイルを保存するとします。
Path path = ... URI u = URI.create("http://java.sun.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
メソッドが呼び出されて、既存のファイルを削除できるかどうかがチェックされます。public static long copy(Path source, OutputStream out) throws IOException
ファイルからの読取り中または出力ストリームへの書込み中に入出力エラーが発生する場合は、数バイトが読み取られたり、書き込まれたりしたあとでそうなることがあります。その結果、出力ストリームが整合性のない状態になる可能性があります。入出力エラーが発生した場合は出力ストリームをただちにクローズすることを強くお薦めします。
このメソッドは、出力ストリームへの書き込み(またはファイルからの読み取り)を無期限にブロックすることがあります。コピー中に出力ストリームが非同期クローズされたり、スレッドの割込みが発生したりした場合の動作は、入力ストリームやファイル・システム・プロバイダによって大きく異なるため、特定できません。
指定された出力ストリームがFlushable
である場合は、バッファに入っている出力をフラッシュするために、このメソッドの完了後に、そのflush
メソッドを呼び出すことが必要になることがあります。
source
- ファイルへのパスout
- 書込み先の出力ストリームIOException
- 読み取りまたは書込み中に入出力エラーが発生した場合。SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。public static byte[] readAllBytes(Path path) throws IOException
このメソッドが、すべてのバイトを1つのバイト配列に読み取ると都合が良い簡単なケースで使用するものであることに注意してください。大きなファイルを読み取ることを目的とはしていません。
path
- ファイルへのパスIOException
- ストリームからの読取り中に入出力エラーが発生した場合OutOfMemoryError
- 必要なサイズの配列を割り当てられない場合(ファイルが2GB
を超えるなど)SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。public static List<String> readAllLines(Path path, Charset cs) throws IOException
このメソッドは、次を行末記号と認識します。
\u000D
と\u000A
、キャリッジ・リターンと改行 \u000A
、改行 \u000D
、キャリッジ・リターン 将来のリリースでは、追加のUnicode行末記号が認識される可能性があります。
このメソッドが、すべての行を1回の操作で読み取ると都合が良い簡単なケースで使用するものであることに注意してください。大きなファイルを読み取ることを目的とはしていません。
path
- ファイルへのパスcs
- デコードに使用する文字セットList
として読み取られた行。そのList
が変更可能であるかどうかは実装に依存しているため、特定できないIOException
- ファイルからの読取り中に入出力エラーが発生した場合、または形式が間違っているか、マップできないバイト・シーケンスが読み取られた場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。newBufferedReader(java.nio.file.Path, java.nio.charset.Charset)
public static List<String> readAllLines(Path path) throws IOException
UTF-8
文字セット
を使用して文字にデコードされます。
このメソッドの呼出しは、式を評価することと同様に動作します。
Files.readAllLines(path, StandardCharsets.UTF_8)
path
- ファイルへのパスList
として読み取られた行。そのList
が変更可能であるかどうかは実装に依存しているため、特定できないIOException
- ファイルからの読取り中に入出力エラーが発生した場合、または形式が間違っているか、マップできないバイト・シーケンスが読み取られた場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。public static Path write(Path path, byte[] bytes, OpenOption... options) throws IOException
options
パラメータはファイルを作成または開く方法を指定します。オプションがない場合、このメソッドはCREATE
、TRUNCATE_EXISTING
、およびWRITE
オプションがあるかのように機能します。つまり、書込み用にファイルを開きます(存在しない場合は作成し、そうでない場合は最初に既存の通常ファイル
をサイズ0
に切り詰めます)。バイト配列内のすべてのバイトがファイルに書き込まれます。このメソッドは、すべてのバイトが書き込まれた(あるいは、入出力エラーまたは他の実行時例外がスローされた)ときに必ずそのファイルがクローズされるようにします。入出力エラーが発生した場合は、ファイルの作成または切詰めが行われたあと、またはファイルに数バイト書き込まれたあとに行われる場合があります。
使用例: デフォルトでは、このメソッドは新しいファイルを作成するか、既存のファイルに上書きします。その代わりに、バイトを既存のファイルに追加するとします。
Path path = ... byte[] bytes = ... Files.write(path, bytes, StandardOpenOption.APPEND);
path
- ファイルへのパスbytes
- 書き込むバイトを含むバイト配列options
- ファイルを開く方法を指定するオプションIOException
- ファイルへの書込み中またはファイルの作成中に入出力エラーが発生した場合UnsupportedOperationException
- 未サポートのオプションが指定された場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。public static Path write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options) throws IOException
line.separator
で定義されているように、各行の終端がプラットフォームの行区切り文字で表されるファイルに順々に書き込まれます。文字は、指定された文字セットを使ってバイトにエンコードされます。
options
パラメータはファイルを作成または開く方法を指定します。オプションがない場合、このメソッドはCREATE
、TRUNCATE_EXISTING
、およびWRITE
オプションがあるかのように機能します。つまり、書込み用にファイルを開きます(存在しない場合は作成し、そうでない場合は最初に既存の通常ファイル
をサイズ0
に切り詰めます)。このメソッドは、すべての行が書き込まれた(あるいは、入出力エラーまたは他の実行時例外がスローされた)ときに必ずそのファイルがクローズされるようにします。入出力エラーが発生した場合は、ファイルの作成または切詰めが行われたあと、またはファイルに数バイト書き込まれたあとに行われる場合があります。
path
- ファイルへのパスlines
- 文字シーケンスすべてについて反復処理を行うオブジェクトcs
- エンコードに使用する文字セットoptions
- ファイルを開く方法を指定するオプションIOException
- ファイルへの書込み中またはファイルの作成中に入出力エラーが発生したか、指定された文字セットを使ってテキストをエンコードできない場合UnsupportedOperationException
- 未サポートのオプションが指定された場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。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
- ファイルを開く方法を指定するオプションIOException
- ファイルへの書込み中またはファイルの作成中に入出力エラーが発生したか、UTF-8
としてテキストをエンコードできない場合UnsupportedOperationException
- 未サポートのオプションが指定された場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWrite
メソッドが呼び出されてファイルへの書込みアクセスがチェックされます。public static Stream<Path> list(Path dir) throws IOException
Stream
を返します。リストは再帰的ではありません。
ストリームの要素は、dir
に対してディレクトリ・エントリの名前を解決
したかのように取得されるPath
オブジェクトです。一部のファイル・システムでは、ディレクトリ自体やディレクトリの親ディレクトリへの特殊なリンクを保持しています。これらのリンクを表すエントリは含まれません。
ストリームは、弱一貫性を保持します。それはスレッド・セーフですが、反復処理中にディレクトリをフリーズしないため、このメソッドからの復帰後に行われる更新がディレクトリに反映されることも反映されないこともあります。
返されるストリームは、DirectoryStream
をカプセル化します。ファイル・システム・リソースのタイムリな破棄が必要な場合は、try
-with-resources構文を使用して、ストリーム操作の完了後にストリームのclose
メソッドが呼び出されるようにしてください。
クローズされたストリームに対する操作は、ストリームの終わりに達したかのように動作します。先読みが原因で、ストリームがクローズされた後に1つ以上の要素が返されることがあります。
このメソッドの復帰後にディレクトリにアクセスするときにIOException
がスローされる場合、アクセスが発生する原因となったメソッドからスローされるUncheckedIOException
にラップされます。
dir
- ディレクトリへのパスStream
NotDirectoryException
- ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)IOException
- ディレクトリを開いているときに入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。newDirectoryStream(Path)
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つ以上のDirectoryStream
をカプセル化します。ファイル・システム・リソースのタイムリな破棄が必要な場合は、try
-with-resources構文を使用して、ストリーム操作の完了後にストリームのclose
メソッドが呼び出されるようにしてください。クローズされたストリームに対して操作すると、結果としてIllegalStateException
が発生します。
このメソッドの復帰後にディレクトリにアクセスするときにIOException
がスローされる場合、アクセスが発生する原因となったメソッドからスローされるUncheckedIOException
にラップされます。
start
- 開始ファイルmaxDepth
- ビジットするディレクトリ・レベルの最大数options
- トラバースを構成するオプションPath
のStream
IllegalArgumentException
- maxDepth
パラメータが負の値の場合SecurityException
- セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。デフォルト・プロバイダの場合は、checkRead
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。IOException
- 開始ファイルにアクセスしているときに入出力エラーがスローされる場合public static Stream<Path> walk(Path start, FileVisitOption... options) throws IOException
Path
が遅延移入されるStream
を返します。ファイル・ツリーは深さ優先でトラバースされます。ストリーム内の要素は、start
に対して相対パスを解決
したかのように取得されるPath
オブジェクトです。
このメソッドの呼出しは、式を評価することと同様に動作します。
つまり、それはファイル・ツリーのすべてのレベルをビジットします。walk(start, Integer.MAX_VALUE, options)
返されるストリームは、1つ以上のDirectoryStream
をカプセル化します。ファイル・システム・リソースのタイムリな破棄が必要な場合は、try
-with-resources構文を使用して、ストリーム操作の完了後にストリームのclose
メソッドが呼び出されるようにしてください。クローズされたストリームに対して操作すると、結果としてIllegalStateException
が発生します。
start
- 開始ファイルoptions
- トラバースを構成するオプションPath
のStream
SecurityException
- セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。デフォルト・プロバイダの場合は、checkRead
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。IOException
- 開始ファイルにアクセスしているときに入出力エラーがスローされる場合walk(Path, int, FileVisitOption...)
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つ以上のDirectoryStream
をカプセル化します。ファイル・システム・リソースのタイムリな破棄が必要な場合は、try
-with-resources構文を使用して、ストリーム操作の完了後にストリームのclose
メソッドが呼び出されるようにしてください。クローズされたストリームに対して操作すると、結果としてIllegalStateException
が発生します。
このメソッドからの復帰後にディレクトリにアクセスするときにIOException
がスローされる場合、アクセスが発生する原因となったメソッドからスローされるUncheckedIOException
にラップされます。
start
- 開始ファイルmaxDepth
- 検索するディレクトリ・レベルの最大数matcher
- 返されるストリームにファイルを含める必要があるかどうかの判定に使用される関数options
- トラバースを構成するオプションPath
のStream
IllegalArgumentException
- maxDepth
パラメータが負の値の場合SecurityException
- セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。デフォルト・プロバイダの場合は、checkRead
メソッドが呼び出されてディレクトリへの読取りアクセスがチェックされます。IOException
- 開始ファイルにアクセスしているときに入出力エラーがスローされる場合walk(Path, int, FileVisitOption...)
public static Stream<String> lines(Path path, Charset cs) throws IOException
Stream
として読み取ります。readAllLines
とは異なり、このメソッドはすべての行をList
に読み込むことはしませんが、ストリームが消費されたときに遅延設定します。
ファイルから取得したバイトは指定された文字セットを使用して文字にデコードされ、readAllLines
で指定されているものと同じ行末記号がサポートされます。
このメソッドが復帰した後、ファイルからの読取り中、または形式が間違っているか、またはマップできないバイト・シーケンスが読み取られるときに発生するすべての後続の入出力例外は、読取りが発生する原因となったStream
のメソッドからスローされるUncheckedIOException
にラップされます。ファイルのクローズ時にIOException
がスローされる場合、これもUncheckedIOException
としてラップされます。
返されるストリームは、Reader
をカプセル化します。ファイル・システム・リソースのタイムリな破棄が必要な場合は、try-with-resources構文を使用して、ストリーム操作の完了後にストリームのclose
メソッドが呼び出されるようにしてください。
path
- ファイルへのパスcs
- デコードに使用する文字セットStream
として読み取られた行IOException
- ファイルのオープン中に入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。readAllLines(Path, Charset)
, newBufferedReader(Path, Charset)
, BufferedReader.lines()
public static Stream<String> lines(Path path) throws IOException
Stream
として読み取ります。ファイルから取得したバイトは、UTF-8
文字セット
を使用して文字にデコードされます。
このメソッドの呼出しは、式を評価することと同様に動作します。
Files.lines(path, StandardCharsets.UTF_8)
path
- ファイルへのパスStream
として読み取られた行IOException
- ファイルのオープン中に入出力エラーが発生した場合SecurityException
- デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkRead
メソッドが呼び出されてファイルへの読取りアクセスがチェックされます。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.