On 02/12/2014 05:36 PM, Henry Jen wrote:
On 02/12/2014 07:05 AM, Wang Weijun wrote:
This line does not compile
Files.list(Paths.get("/secret")).forEach(x -> Files.write(x, new
byte[Files.size(x)]);
because Files.write() and Files.size() throw IOE. Then what's the
best way to make it work?
(I find some old threads on this on lambda-dev. Maybe we have a
recommended way now?)
I am not sure there is a "recommended" way. Depends on how you need to
handle those exceptions, I'll put the lambda in a private function to
take care those exception, and surpress them in a UncheckedIOException.
Cheers,
Henry
The other solution is to use wrappers like these ones:
https://github.com/forax/blog/blob/master/src/com/github/forax/blog/UnsafeIO.java
and rewrite your code like this:
Files.list(Paths.get("/secret")).forEach(unsafeProc(x -> Files.write(x,
new byte[Files.size(x)]));
cheers,
Rémi