FilesによるPath(ファイル・ディレクトリ)操作の目的別まとめ
Pathによるファイル操作を行うためにはFilesクラスを利用する。Filesクラスで可能な操作を目的別にまとめる。
Java | Java SE 8 |
NIO2ではファイルやディレクトリをPathで扱う。Pathクラス自体はパスを表現することに専念するためファイル操作をするメソッドを提供はしない。Pathに対するファイル操作をする場合Filesクラスを利用ことになる。FilesクラスはPathを操作するために作られたクラスで、ファイル操作用のメソッドをすべてstaticで提供される。
全てではないが、Filesクラスで可能な操作を目的別にまとめる。
存在チェック
目的 | メソッド |
---|---|
ファイルが存在するか |
|
ファイルが存在しないか |
属性値の取得と設定
取得
目的 | メソッド |
---|---|
読込可能か |
boolean isReadable() |
書込可能か |
boolean isWritable() |
実行可能か |
boolean isExecutable() |
隠しファイルか |
boolean isHidden() |
サイズ(バイト) |
long size() |
最終更新日時 |
FileTime getLastModifiedTime() |
所有者 |
UserPrincipal getOwner() |
ファイルの生成、削除、コピー、移動
生成
目的 | メソッド |
---|---|
(空)ファイルの作成 |
|
ディレクトリの作成 |
|
ディレクトリの作成 |
createDirectory()とcreateDirectories()の違いは親ディレクトリが存在しなかった場合の動き。
-
createDirectory() → 親ディレクトリが無い場合はIOException。
-
createDirectories() → 存在しない親ディレクトリを作成する。
削除
目的 | メソッド |
---|---|
ファイルを削除する |
|
ファイルが存在する場合にファイルを削除する |
コピー
目的 | メソッド |
---|---|
PathからPathへコピー |
|
InputStreamからPathへコピー |
long copy(InputStream in, Path target, CopyOption… options) |
PathからOutputStreamへコピー |
移動
目的 | メソッド |
---|---|
PathからPathへ移動 |
入出力ストリームやChannelの生成
入力
目的 | メソッド |
---|---|
InputStream |
|
BufferedReader |
|
BufferedReader |
出力
目的 | メソッド |
---|---|
OutputStream |
OutputStream newOutputStream(Path path,OpenOption… options) |
BufferedWriter |
BufferedWriter newBufferedWriter(Path path, OpenOption… options) |
BufferedWriter |
BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption… options) |
Channel
目的 | メソッド |
---|---|
SeekableByteChannel |
SeekableByteChannel newByteChannel(Path path,OpenOption… options) |
SeekableByteChannel |
簡易入出力
目的 | メソッド |
---|---|
読込(path→byte[]) |
|
読込(path→List<String>) |
|
読込(path→List<String>) |
|
書込(byte[]→path) |
Appendix A: 参考
Appendix B: 改訂履歴
-
v1.0, 2017-04-19: 初稿