Javaにおけるファイル処理
· 約2分
プロジェクト開発する際、ファイル処理はよくあるタスクです。一文でJavaにおけるファイル処理のおすすめ手法を紹介します。
結論から言うと、今のファイル処理は、java.nioを使ったら無難です。
java.nio と java.nio.file パッケージ
そもそも、java.nioはNon Blocking I/Oという意味で、スレッドをブロックせずにIO処理する機能を提供します。
java.nio.fileは、NIO技術に基づいて、FileSystem処理の抽象化機能です。java.nio.fileを提供するクラスを使うことによって、より高いパーフォマンス、より簡単に、ファイルの操作ができます。
java.nio.file におけるFileSystemの操作
Pathはファイルシステム上のファイルとパスを表します。
Pathsクラスは、Pathを作成するStaticメソッドだけで構成されます。
Filesクラスはファイル、ディレクトリなどを操作するStaticメソッドだけで構成されます。
例
ファイルシステムの操作
ファイルの作成、削除、ディレクトリの作成
Path path = Paths.get('mypath');
// エントリを一覧
Stream<Path> pathsStream = Files.list(path);
// ディレクトリの作成
Path subPath = Files.createDirectories(path.resolve('tmp'));
// ファイルの作成
Path file = Files.createFile(subPath.resolve('README.md'));
//
Files.delete(file);
boolean deleted = Files.deleteIfExists(subPath);
// コピー
Path sourcePath = path.resolve('soruce.txt');
Path targetPath = path.resolve('target.txt');
Files.copy(sourcePath, targetPath);
Files.exists(targetPath);
Files.isDirectory(targetPath);
Files.size()