我正在尝试读取一个非常大的流文件,所以我需要并行流而不是每行迭代......我正在尝试如下:
String cont = new String(Files.readAllBytes(Paths.get(this.File_Path)),
StandardCharsets.UTF_8);
List<String> words = Arrays.asList(cont.split("\\PL+"));
yep = words.parallelStream()
.filter(x -> x.contains(toMatch))
.distinct()
.collect(Collectors.toList());
这适用于小文件大小,但如果我尝试对具有一些 gbs 大小的文件进行相同操作,java 会给我这个异常:
java.lang.OutOfMemoryError: Required array size too large
有一种方法可以避免此异常但同时使用并行流而不是使用 BufferReader 或 Scanner 进行迭代?
婷婷同学_
守着星空守着你
相关分类