2016-10-13 23 views
0

を使用して、Java Beanにファイルを読みながら、私はjava.lang.OutOfMemoryErrorを取得しています:ExcelはXLSReaderjava.lang.OutOfMemoryErrorを:JavaヒープスペースExcelはXLSReader

を使用して、Java Beanにファイルを読みながら、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のサイズは16 MBです。私はJVMメモリを2Gまで増やしてみましたが、それでも同じ問題があります。 – anup

答えて

1

XLSReaderはメモリ内のすべてのデータを読み取る傾向があります。

ファイルが大きい場合、すぐにメモリ不足になります。

ファイルのサイズによっては、-Xmsおよび-Xmxパラメータを使用してJVMのメモリを増やすことができます。

ファイルが本当に大きい場合は、Excelファイルを読み込む戦略を変更する必要があると思います。 Link

関連する問題