Usando la siguiente documentación: http://poi.apache.org/spreadsheet/how-to.html#sxssfApache POI - SXSSF: ¿a dónde va a tirar las filas que no están en la ventana antes de enviarlas al archivo?
De acuerdo a este sitio:
SXSSF (paquete: org.apache.poi.xssf.streaming) es una extensión de streaming compatible-API de XSSF a utilizar cuando se deben producir hojas de cálculo muy grandes y el espacio de almacenamiento es limitado. SXSSF logra su huella de memoria baja al limitar el acceso a las filas que están dentro de una ventana deslizante, mientras que XSSF da acceso a todas las filas del documento. Las filas antiguas que ya no se encuentran en la ventana se vuelven inaccesibles, ya que se escriben en el disco.
Sin embargo, en el ejemplo proporcionado, la descarga ocurre antes de que el libro tenga la ubicación del archivo donde escribir el archivo.
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();
}
Así que esto plantea la pregunta, ¿en qué parte del sistema de archivos está almacenando los datos? ¿Simplemente está creando un archivo temporal en el directorio temporal predeterminado? ¿Es esto seguro para todas/la mayoría de las implementaciones?
Gracias
¡Genial! Gracias .. –
Gracias por su respuesta. Cuando se borra el archivo temporal? ¿se eliminará en la finalización del programa? ¿cómo podemos eliminarlo manualmente? – user2625094
Clase SXSSF Eliminación de libros de trabajo(): elimine los archivos temporales que respaldan este libro de trabajo en el disco. –