您正在处理所有错误,
Scanner不需要:
try (final InputStream is = A.class.getResourceAsStream("data.txt"); final Reader r = new InputStreamReader(is, StandardCharsets.UTF_8); final BufferedReader br = new BufferedReader(r); final Stream<String> lines = br.lines()) {}如果您确实要使用a
Scanner,
implements Iterator那么您可以这样做:
public Stream<String> streamScanner(final Scanner scanner) { final Spliterator<String> splt = Spliterators.spliterator(scanner, Long.MAX_VALUE, Spliterator.ORDERED | Spliterator.NONNULL); return StreamSupport.stream(splt, false) .onClose(scanner::close);}PS,您似乎也没有关闭资源。 总是 关闭一个
InputStream。



