JDK8 の Files クラスを少しだけ触ってみる。

Java

今回は JDK8 で新たに Files クラスに追加された便利な機能について少しだけ触ってみる。

と言っても元ネタは海外のサイトのもので英語が読めない私は手探りで触っています。

早速 NetBeans を使ってプロジェクトを創ってみました。

プロジェクトのファイル構造は下図のようになります。

1

プログラムのコードは次のようになってます。

2

出力ウィンドウの実行結果から解るようにちゃんとフィルタリングされたディレクトリ及びファイルが表示されています。

public static Stream<Path> list(Path dir) throws IOException

この新しく追加されたメソッドが便利ですね。

では、次に指定したパスからたどれるディレクトリとファイルを全て表示させてみましょう。

3

全て表示されてます。

public static Stream<Path> walk(Path start, FileVisitOption… options) throws IOException

が頑張ってくれました。(^_^)

public static Path walkFileTree(Path start, FileVisitor<? super Path> visitor) throws IOException

より扱いやすいような気がします。(気がするだけか、 StreamAPI 使った方がこれからは楽かも?)

さて、それではさらに拡張子が java のファイルだけを表示させるようにしてみましょう。

4

単純に filter メソッドの引数の条件に最後の文字(拡張子)が .java のものだけを加えただけです。

便利ですね!

ついでにファイルの中身を表示させてみるプログラムも!

5

インデントなどの整形処理はなくなってますがちゃんと表示されてます。

public static Stream<String> lines(Path path) throws IOException

が全てのラインを読み込んでくれます。

実際にはファイルの読み込みにはこのようなことはせずに BufferedReader.lines() を使うだろうと思います。

いずれにしろ JDK8 で華々しくデビューする StreamAPI は強力だということですね。(^_^)

Hatena タグ: