Usando i seguenti documenti: http://poi.apache.org/spreadsheet/how-to.html#sxssfPOI Apache - SXSSF: a dove scorre le righe non presenti nella finestra prima dell'output su file?
Secondo questo sito:
SXSSF (pacchetto: org.apache.poi.xssf.streaming) è un'estensione di streaming API-compatibile XSSF da utilizzare quando devono essere prodotti fogli di calcolo molto grandi e lo spazio disponibile è limitato. SXSSF raggiunge il suo basso ingombro di memoria limitando l'accesso alle righe che si trovano all'interno di una finestra scorrevole, mentre XSSF dà accesso a tutte le righe del documento. Le vecchie file che non sono più nella finestra diventano inaccessibili, così come sono scritte sul disco.
Tuttavia, nell'esempio fornito lo svuotamento avviene prima che alla cartella di lavoro venga indicato il percorso del file in cui scrivere il file.
public static void main(String[] args) throws Throwable {
Workbook wb = new SXSSFWorkbook(100); // keep 100 rows in memory, exceeding rows will be flushed to disk
Sheet sh = wb.createSheet();
for(int rownum = 0; rownum < 1000; rownum++){
Row row = sh.createRow(rownum);
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
String address = new CellReference(cell).formatAsString();
cell.setCellValue(address);
}
}
// Rows with rownum < 900 are flushed and not accessible
for(int rownum = 0; rownum < 900; rownum++){
Assert.assertNull(sh.getRow(rownum));
}
// ther last 100 rows are still in memory
for(int rownum = 900; rownum < 1000; rownum++){
Assert.assertNotNull(sh.getRow(rownum));
}
FileOutputStream out = new FileOutputStream("/temp/sxssf.xlsx");
wb.write(out);
out.close();
}
Quindi questo fa sorgere la domanda, dove sul file system sta memorizzando i dati? Sta solo creando un file temporaneo nella directory temporanea predefinita? È sicuro per tutte/molte implementazioni?
Grazie
Grande! Grazie .. –
Grazie per la risposta. Quando il file temporaneo viene cancellato? sarà cancellato nella chiusura del programma? come possiamo eliminarlo manualmente? – user2625094
Classe SXSSFWorkbook dispose() - Eliminare i file temporanei che supportano questa cartella di lavoro su disco. –