谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

Java7でファイルシステムへのアクセスが一新

[TS-5052]Hacking the File System with JDK Release 7
http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-5052&yr=2009
Java7から利用できる、新しいファイルシステムについてのセッション。
java.nio.file.FileSystemというクラスを経由して、
プラットフォームのファイルシステムや、仮想的なファイルシステムにアクセスができる。


実はJava6からファイル属性の変更ができるようになってたんだけど、
ファイルの所有者は取れないなど、まだ一部制限が残ってた。
Java7では、その制限撤廃も含めて、ファイルシステムへのアクセスが大きく変わった。


紹介された内容は、大きいものが3つ。

  1. java.nio.file.Path」というクラスで、パスに対する操作ができる。
    • パスの比較
    • ファイルやディレクトリのコピーや移動、削除
    • シンボリックリンクの作成も。
    • (ファイルの場合)ストリームやチャネルを開く
    • 属性の取得や設定(プラットフォームごとに取れる内容も違う)
  2. ファイルの監視。作成や更新のタイミングで、処理を実行できるようになる。
  3. ディレクトリのウォーキング。階層を辿って特定のファイルに対する処理を行える。


ファイルシステムの情報取得については、これまでやりづらかった事だけど、
それ以外は、既存のライブラリで出来ていたり、自前でやっていることがほとんどなので
まぁJava標準でできれば(パフォーマンスも良いなら)ちょっと嬉しいかな、という感じ。


抽象度が上がったおかげで、今よりもファイルを扱う処理がテストしやすくなったり、
ファイルのトランザクションシステムを作りやすくなるんじゃないかな。
まぁ、ちゃんとAPI見てみなきゃね。