ちょっとファイルのコピーをしたいと思って、そういえばJava SE 7で新しいファイルライブラリーが出たはずだからそこだけ見てみようと思っていたのに、どっぷり時間を使ってしまった^^;
tryの新しい構文と併せて、これは意外と便利そうだぞ!?
Filesは、今までInputStreamやらBufferedReaderやらをインスタンス化するのが面倒だった部分が綺麗にライブラリーの中に隠された。これ、Scalaにも欲しいなw
ファイル名やエンコード名の指定がPath・Charsetのみであり、Stringで指定できないのが少々面倒だけど、Scalaだったら暗黙変換を使って何とでも出来るし。
しかしファイルオープン時の属性を色々指定できるようになったのは便利だけど、指定の仕方がなんだか微妙…。enumの値を可変長引数で並べるという(苦笑)
あと、POSIXファイル権限の設定・取得も微妙。Windowsで実行すると例外吐くのが良くない。
UNIX向けJavaプログラムを無理矢理Windowsで動かすことをたまにやるのだが、POSIXファイル権限のメソッドを使われちゃったら、外部からは回避不能だよ(汗)
リソース付きtry文(AutoCloseable)関連は、close()で例外が発生したらどうするんだろうと思っていたのだが、ThrowableにSuppressedという新しいフィールドが追加になっていた。
思っていたより高機能だなー!