gpt4 book ai didi

java - 在Java中读取非常大的.xlsx文件

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

我正在使用 Java 开发一个 Web 应用程序,其中我有一个方法应该使用 apache-poi 读取 .xlsx 文件:

public static void xlsx(String arquivo) throws IOException{

try {
FileInputStream file = new FileInputStream(new File(arquivo));
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell celula = cellIterator.next();
/*here do the reading for each cell,*/
}
}
file.close();

} catch (IOException e) {
e.printStackTrace();
throw new IOException("Erro ao processar arquivo.",e.getCause());
}
}

该方法工作正常,但是该方法处理具有数千行记录(例如大约 25-30 万行)的文件的可能性有多大。处理大文件时,我遇到以下异常:

(http-localhost-127.0.0.1-8080-4) Servlet.service() for servlet RestServlet threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.OutOfMemoryError: Java heap space

我需要知道如何避免此类错误。例如,如果您有读取并处理文件 .xlsx 1000 到 1000 行,或其他解决方案。

最佳答案

如果您想保留现有的实现,只需增加 JVM 最大堆大小即可。请参阅How to increase heap size for jBoss server获取说明和相关讨论。

关于java - 在Java中读取非常大的.xlsx文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063177/

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