メインコンテンツまでスキップ

Javaにおけるファイル処理

· 約2分
Mikyan
白い柴犬

プロジェクト開発する際、ファイル処理はよくあるタスクです。一文で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()

Visit

書き出す、読み込み