java.nio.file.Filesは、ファイル・ディレクトリを操作するためのユーティリティクラスです。
java.nio.file.Filesの特徴
java.nio.file.Filesは以下の特徴があります。
- staticメソッドのみで構成される
- プラットフォームに依存せずにファイル・ディレクトリ操作ができる
java.nio.file.FilesのAPI
| 戻値型 | メソッド | 静的 | 説明 |
|---|---|---|---|
| Path | copy(Path source, Path target, CopyOption… options) | 〇 | ファイルをターゲット・ファイルにコピーする |
| Path | createDirectories(Path dir, FileAttribute<?>… attrs) | 〇 | ディレクトリを作成する (存在しない親ディレクトリも同時に作成する) |
| Path | createDirectory(Path dir, FileAttribute<?>… attrs) | 〇 | ディレクトリを作成する |
| Path | createFile(Path path, FileAttribute<?>… attrs) | 〇 | 新しい空のファイルを作成する (既に存在する場合は失敗する) |
| void | delete(Path path) | 〇 | ファイルを削除する (存在しない場合は失敗する) |
| boolean | deleteIfExists(Path path) | 〇 | ファイルが存在する場合のみ削除する |
| boolean | exists(Path path, LinkOption… options) | 〇 | ファイルが存在するかチェックする |
| boolean | isDirectory(Path path, LinkOption… options) | 〇 | ディレクトリかどうか |
| boolean | isExecutable(Path path) | 〇 | ファイルが実行可能かどうか |
| boolean | isHidden(Path path) | 〇 | ファイルが隠しファイルかどうか |
| boolean | isReadable(Path path) | 〇 | ファイルが読み取り可能かどうか |
| boolean | isSameFile(Path path, Path path2) | 〇 | ファイルが同じかどうか |
| boolean | isSymbolicLink(Path path) | 〇 | シンボリックリンクかどうか |
| boolean | isWritable(Path path) | 〇 | ファイルが書き込み可能かどうか |
| Stream<String> | lines(Path path) | 〇 | ファイル内の行をStreamで読込む |
| BufferedReader | newBufferedReader(Path path) | 〇 | BufferedReaderを返す |
| InputStream | newInputStream(Path path, OpenOption… options) | 〇 | ファイルから読取る入力ストリームを返す |
| OutputStream | newOutputStream(Path path, OpenOption… options) | 〇 | ファイルに書き込む出力ストリームを返す |
| boolean | notExists(Path path, LinkOption… options) | 〇 | ファイルが存在しないかどうか |
| String | probeContentType(Path path) | 〇 | ファイルのコンテンツタイプを返す |
| byte[] | readAllBytes(Path path) | 〇 | ファイルを読み取りバイト配列で返す |
| List<String> | readAllLines(Path path) | 〇 | ファイルからすべての行を読み取る |
| Path | setAttribute(Path path, String attribute, Object value, LinkOption… options) | 〇 | ファイル属性の値を設定する |
| Path | setLastModifiedTime(Path path, FileTime time) | 〇 | ファイルの最終変更時間属性を更新する |
| Path | setOwner(Path path, UserPrincipal owner) | 〇 | ファイルの所有者を変更する |
| long | size(Path path) | 〇 | ファイルのサイズをバイトで返す |
| Stream<Path> | walk(Path start, FileVisitOption… options) | 〇 | ファイルツリーを参照しStreamを返す |
| Path | walkFileTree(Path start, FileVisitor<? super Path> visitor) | 〇 | ファイルツリーを参照する |
| Path | write(Path path, byte[] bytes, OpenOption… options) | 〇 | バイトをファイルに書き込む |
java.nio.file.Filesサンプル
- (ファイル・ディレクトリを作成する)
-
//ファイルを作成する Path filePath = Paths.get("sample.txt"); Files.createFile(filePath); //ディレクトリを作成する Path dirPath = Paths.get("mydir"); Files.createDirectory(dirPath);
- (ファイルを読み込む)
-
Path path = Paths.get("sample.txt"); List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
- (ファイルに書き込む)
-
Path path = Paths.get("sample.txt"); List<String> lines = Arrays.asList("みかん", "りんご", "ぶどう"); Files.write(path, lines, StandardCharsets.UTF_8);
- (ファイルをコピーする)
-
Path source = Paths.get("source.txt"); //コピー元 Path target = Paths.get("target.txt"); //コピー先 Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
- (ファイルをリネームする)
-
Path source = Paths.get("oldname.txt"); //元ファイル名 Path target = Paths.get("newname.txt"); //新ファイル名 Files.move(source, target, StandardCopyOption.REPLACE_EXISTING);
- (ファイル・ディレクトリの存在確認)
-
Path path = Paths.get("sample.txt"); boolean exists = Files.exists(path);
コメント