2016-10-13 2 views
0

내가 java.lang.OutOfMemoryError와 무엇입니까 사용하여 자바 빈에 파일을 읽는 동안 : Excel이 여기 java.lang.OutOfMemoryError와 : Java 힙 공간 Excel에서 XLSReader

XLSReader

사용하여 자바 빈에 파일을 읽는 동안 Java 힙 공간하면 코드가 단편.

public static <T> List<T> parseExcelFileToBeans(final File xlsFile, 
                     final File jxlsConfigFile) 
     throws Exception { 
    final XLSReader xlsReader = ReaderBuilder.buildFromXML(jxlsConfigFile); 
    final List<T> result = new ArrayList<>(); 
    final Map<String, Object> beans = new HashMap<>(); 
    beans.put("result", result); 
    try (InputStream inputStream = new BufferedInputStream(new FileInputStream(xlsFile))) { 
     xlsReader.read(inputStream, beans); 
    } 
    return result; 
} 
+0

큰 파일을 읽은 것 같습니다. 크기는 얼마입니까? –

+0

@JakubJankowski 크기는 16MB입니다. 나는 2G까지 증가 JVM 메모리를 시도했지만 여전히 같은 문제를 참조하십시오. – anup

답변

1

XLSReader는 메모리의 모든 데이터를 읽는 경향이 있습니다.

파일 크기가 클 경우 빠르게 메모리가 부족합니다.

파일의 크기에 따라 -Xms-Xmx 매개 변수를 사용하여 JVM 메모리를 늘릴 수 있습니다.

파일이 너무 크면 Excel 파일을 읽는 전략을 변경해야한다고 생각합니다. Link.

관련 문제