絶対の例外発生しないけど例外 throwable 宣言にメソッドを使用するのにわざわざ、try~catch ハンドリングを
書きたくなくて用意した、、、Throwable~ 関数型インターフェース
Throwable~ 関数型インターフェースを使う - Oboe吹きプログラマの黙示録
と、
FileCollection - Oboe吹きプログラマの黙示録
を組み合わせると、実行中のリソース配下のファイルを走査する処理を簡単に書けます。
まず、その前に簡単なコードの理解、、
URL url = ClassLoader.getSystemClassLoader().getResource("");
ここから、toURI() が、どうしても URISyntaxException の捕捉処理を必要としているので。。
File f = new File(Optional.of(ThrowableSupplier.to(()->url.toURI()).get()).get());
では、リソース配下のファイルを走査しましょう。
FileCollection fc = FileCollection.of(Optional.of( ThrowableSupplier.to(()->ClassLoader.getSystemClassLoader().getResource("").toURI()).get() ).get() .getPath() ); fc.scan().stream().filter(e->e.isFile() && e.canRead()) .map(e->e.getAbsolutePath()).forEach(System.out::println);
.forEach(System.out::println); の代わりに実践の処理を書くことになると思います。
filter に書く Predicate も適時、仕様に沿った処理をすれば良いでしょう。
fc.scan().stream().filter(e->e.isFile() && e.canRead()).map(e->e.getAbsolutePath()).forEach(f->{ // ファイルに対する処理 });