For my specific task, I need to read the data from FileChannel to a Stream (or Collection) of String\'s.
In a regular
I assume you want the channel to be closed when the returned Stream is closed, so the simplest approach would be
public static Stream<String> lines(FileChannel channel) {
BufferedReader br = new BufferedReader(Channels.newReader(channel, "UTF-8"));
return br.lines().onClose(() -> {
try { br.close(); }
catch (IOException ex) { throw new UncheckedIOException(ex); }
});
}
It doesn’t actually require a FileChannel as input, a ReadableByteChannel is sufficient.
Note that this also belongs to “regular NIO”; java.nio.file is sometimes referred to as “NIO.2”.