Verwenden Sie die folgende Dokumentation: Ссылка
Nach dieser Site:
SXSSF (Paket: org.apache.poi.xssf.streaming) ist eine API-kompatible Streaming-Erweiterung von XSSF, die verwendet werden soll, wenn sehr große Tabellen erstellt werden müssen und der Heap-Speicherplatz begrenzt ist. SXSSF erreicht seinen geringen Speicherbedarf, indem der Zugriff auf die Zeilen in einem verschiebbaren Fenster eingeschränkt wird, während XSSF Zugriff auf alle Zeilen im Dokument gewährt. Ältere Zeilen, die sich nicht mehr im Fenster befinden, können nicht mehr aufgerufen werden, da sie auf die Festplatte geschrieben werden.
In dem bereitgestellten Beispiel wird das Flush jedoch ausgeführt, bevor der Arbeitsmappe die Dateiposition zugewiesen wird, an der die Datei geschrieben werden soll.
%Vor%Es stellt sich also die Frage, wo auf dem Dateisystem die Daten gespeichert werden? Wird nur eine temporäre Datei im Standardtempverzeichnis erstellt? Ist das für alle / die meisten Implementierungen sicher?
Danke
Die Klasse, die die Pufferung durchführt, ist SheetDataWriter
in org.apache.poi.xssf.streaming.SXSSFSheet
Die magische Linie, an der Sie wahrscheinlich interessiert sind, ist:
%Vor% In Bezug auf ist das sicher, wahrscheinlich, aber nicht sicher ... Es ist wahrscheinlich wert, einen Fehler im poi bugzilla zu öffnen und die Verwendung von org.apache.poi.util.TempFile
zu aktivieren, was ein bisschen mehr Kontrolle erlaubt. Solange Sie jedoch eine gültige Eigenschaft für java.io.tmpdir
angeben (oder der Standardwert für Sie sinnvoll ist), sollten Sie in Ordnung sein
Tags und Links java apache-poi