FilesによるPath(ファイル・ディレクトリ)操作の目的別まとめ

Pathによるファイル操作を行うためにはFilesクラスを利用する。Filesクラスで可能な操作を目的別にまとめる。

執筆時バージョン
Java

Java SE 8

NIO2ではファイルやディレクトリをPathで扱う。Pathクラス自体はパスを表現することに専念するためファイル操作をするメソッドを提供はしない。Pathに対するファイル操作をする場合Filesクラスを利用ことになる。FilesクラスはPathを操作するために作られたクラスで、ファイル操作用のメソッドをすべてstaticで提供される。

全てではないが、Filesクラスで可能な操作を目的別にまとめる。

存在チェック

目的 メソッド

ファイルが存在するか

boolean exists(Path path, LinkOption…​ options)

ファイルが存在しないか

boolean notExists(Path path, LinkOption…​ options)

属性値の取得と設定

取得

目的 メソッド

読込可能か

boolean isReadable()

書込可能か

boolean isWritable()

実行可能か

boolean isExecutable()

隠しファイルか

boolean isHidden()

サイズ(バイト)

long size()

最終更新日時

FileTime getLastModifiedTime()

所有者

UserPrincipal getOwner()

ファイルの生成、削除、コピー、移動

生成

目的 メソッド

(空)ファイルの作成

Path createFile(Path path,FileAttribute<?>…​ attrs)

ディレクトリの作成

Path createDirectory(Path dir, FileAttribute<?>…​ attrs)

ディレクトリの作成

Path createDirectories(Path dir, FileAttribute<?>…​ attrs)

createDirectory()とcreateDirectories()の違いは親ディレクトリが存在しなかった場合の動き。

  • createDirectory() → 親ディレクトリが無い場合はIOException。

  • createDirectories() → 存在しない親ディレクトリを作成する。

削除

目的 メソッド

ファイルを削除する

void delete(Path path)

ファイルが存在する場合にファイルを削除する

boolean deleteIfExists(Path path)

コピー

目的 メソッド

PathからPathへコピー

Path copy(Path source, Path target, CopyOption…​ options)

InputStreamからPathへコピー

long copy(InputStream in, Path target, CopyOption…​ options)

PathからOutputStreamへコピー

long copy(Path source, OutputStream out)

移動

目的 メソッド

PathからPathへ移動

Path move(Path source,Path target,CopyOption…​ options)

簡易入出力

目的 メソッド

読込(path→byte[])

byte[] readAllBytes(Path path)

読込(path→List<String>)

List<String> readAllLines(Path path)

読込(path→List<String>)

List<String> readAllLines(Path path,Charset cs)

書込(byte[]→path)

write(Path path, byte[] bytes, OpenOption…​ options)

Appendix A: 参考

Appendix B: 改訂履歴

  • v1.0, 2017-04-19: 初稿