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、ファイルが存在しないために削除できなかった場合はfalseDirectoryNotEmptyException - ファイルがディレクトリで、ディレクトリが空でないために削除できなかった場合(オプションの固有例外)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 - もう一方のパスtrueIOException - 入出力エラーが発生した場合SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadメソッドが呼び出されて2つのファイルへの読取りアクセスがチェックされます。BasicFileAttributes.fileKey()public static boolean isHidden(Path path) throws IOException
hidden属性が設定されているファイルが隠しファイルとみなされます。
実装によっては、このメソッドは、ファイルが隠しファイルとみなされるかどうかを判断するためにファイル・システムにアクセスすることが必要になる場合があります。
path - テストするファイルへのパスtrueIOException - 入出力エラーが発生した場合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 - 調査するファイルへのパスnullIOException - 入出力エラーが発生した場合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 - シンボリック・リンクの処理方法を示すオプションnullpublic 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 - 読み取る必要のあるファイル属性のClassoptions - シンボリック・リンクの処理方法を示すオプション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 - 関連付けられるファイル・システムが次をサポートしない場合: PosixFileAttributeViewIOException - 入出力エラーが発生した場合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 - 関連付けられるファイル・システムが次をサポートしない場合: PosixFileAttributeViewClassCastException - セットに次のタイプでない要素が含まれる場合: PosixFilePermissionIOException - 入出力エラーが発生した場合SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission("accessUserInformation")を拒否するか、またはそのcheckWriteメソッドがファイルへの書込みアクセスを拒否する場合。public static UserPrincipal getOwner(Path path, LinkOption... options) throws IOException
pathパラメータは、FileOwnerAttributeViewをサポートするファイル・システムに関連付けられます。このファイル属性ビューは、ファイルの所有者であるファイル属性へのアクセスを提供します。
path - ファイルへのパスoptions - シンボリック・リンクの処理方法を示すオプションUnsupportedOperationException - 関連付けられるファイル・システムが次をサポートしない場合: FileOwnerAttributeViewIOException - 入出力エラーが発生した場合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 - 関連付けられるファイル・システムが次をサポートしない場合: FileOwnerAttributeViewIOException - 入出力エラーが発生した場合SecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされていて、それがRuntimePermission("accessUserInformation")を拒否するか、またはそのcheckWriteメソッドがファイルへの書込みアクセスを拒否する場合。FileSystem.getUserPrincipalLookupService(), UserPrincipalLookupServicepublic 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。ファイルが存在するか、その存在を判断できない場合はfalseSecurityException - デフォルト・プロバイダの場合は、SecurityManager.checkRead(String)が呼び出されてファイルへの読取りアクセスがチェックされます。public static boolean isReadable(Path path)
このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを読取り用に開く試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path - チェックするファイルへのパスtrue。ファイルが存在しないか、Java仮想マシンに十分な特権がないために読取りアクセスが拒否されるか、またはアクセスを判断できない場合はfalseSecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkReadが呼び出されてファイルへの読取りアクセスがチェックされます。public static boolean isWritable(Path path)
このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを書込み用に開く試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path - チェックするファイルへのパスtrue。ファイルが存在しないか、Java仮想マシンに十分な特権がないために書込みアクセスが拒否されるか、またはアクセスを判断できない場合はfalseSecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、checkWriteが呼び出されてファイルへの書込みアクセスがチェックされます。public static boolean isExecutable(Path path)
実行するための適切な特権があることを確認します。ディレクトリへのアクセスをチェックする場合はセマンティックスが異なる場合があります。たとえば、UNIXシステムでは、実行アクセスのチェックを行うと、Java仮想マシンに、ファイルまたはサブディレクトリにアクセスするためにディレクトリを検索する権限があることが確認されます。
実装によっては、このメソッドが、ファイルへの効果的なアクセスをチェックするために、ファイル・アクセス権、アクセス制御リスト、またはその他のファイル属性を読み取る必要がある場合があります。その結果、このメソッドはほかのファイル・システムの操作に関して原始的でない可能性があります。
このメソッドの結果がすぐに古くなることに注意してください。そのあとのファイルを実行する試みが成功する(あるいは同じファイルにアクセスすることさえ)保証はありません。このメソッドを、セキュリティ保護を必要とするアプリケーションで使用するときは注意してください。
path - チェックするファイルへのパスtrue。ファイルが存在しないか、Java仮想マシンに十分な特権がないために実行アクセスが拒否されるか、またはアクセスを判断できない場合はfalseSecurityException - デフォルト・プロバイダで、セキュリティ・マネージャがインストールされている場合は、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 - ディレクトリへのパスStreamNotDirectoryException - ファイルがディレクトリではないために開けなかった場合(オプションの固有例外)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のStreamIllegalArgumentException - 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のStreamSecurityException - セキュリティ・マネージャが開始ファイルへのアクセスを拒否する場合。デフォルト・プロバイダの場合は、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のStreamIllegalArgumentException - 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.