gpt4 book ai didi

java.util.Scanner#findWithHorizo​​n 在 32Mb 输入流上抛出 OutOfMemory 异常

转载 作者:行者123 更新时间:2023-12-01 15:50:07 24 4
gpt4 key购买 nike

搜索字符串“4914904”存在于流的尾部。

这是代码

    Scanner sc = new Scanner(xmlInputStream, "UTF-8");
if(sc.findWithinHorizon('4914904', 0) != null) { // <--- exception is thrown here
}

如有任何建议,我们将不胜感激。

最佳答案

如果您阅读 Scanner 的 API,您会发现如果将参数 0 传递给 findWithinHorizon它会立即读取整个缓冲区。

由于您没有利用此值做任何事情,所以我看到了一些选择。

尝试更改为useDelimiter(String pattern)然后调用 if(sc.hasNext()) 这可能会帮助一些内存占用。

如果您有 XML,请使用 XML 解析器而不是文本扫描器。

您可以考虑编写一种自定义方法,一次一行解析输入流并执行搜索。这样您就不必读取整个缓冲区。

增加jvm启动时分配的内存-Xmx256m

旁注:当您在此处发布时,请勿重写代码。只需复制并粘贴即可。

关于java.util.Scanner#findWithHorizo​​n 在 32Mb 输入流上抛出 OutOfMemory 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6251909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com