SXSSFWorkbook生成的文件在什么位置,如何获取到这个文件。

最近在写一个功能,下载就用的book,生成表格,前端调用直接下载。现在要改动为,后端book生成多个表格之后,把文件存在本地或工程上,再通过流获取到文件,将多个表格转为压缩包,前端下载压缩包。现在搞不太明白这工具生成的表格是怎么存的,存在哪,怎么拿到这个文件。

SXSSFWorkbook是Apache POI库中的类,用于在内存中生成Excel文件。在生成Excel文件时,需要使用SXSSFWorkbook的write方法,将文件写入到本地磁盘上。

在生成文件时,需要指定文件的存储路径,如下:

FileOutputStream out = new FileOutputStream("C:\\test.xlsx");
book.write(out);

在上面这个例子中,book是SXSSFWorkbook实例,文件将会存储在C盘根目录下,文件名为test.xlsx.

若要获取到这个文件,可以使用Java IO流来读取文件,如下:

FileInputStream in = new FileInputStream("C:\\test.xlsx");
book = new SXSSFWorkbook(new XSSFWorkbook(in));

然后就可以通过book来获取到文件中的数据了。

SXSSFWorkbook生成的文件默认存放在用户的临时文件夹中,用户可以通过调用System.getProperty("java.io.tmpdir")来获取到这个文件。

**bin (binaries)存放二进制可执行文件
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
etc (etcetera)存放系统配置文件
usr (unix shared resources)用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
dev (devices)用于存放设备文件
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt (mount)系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp (temporary)用于存放各种临时文件
var (variable)用于存放运行时需要改变数据的文件
可以在这里面找一找,希望采纳

SXSSFWorkbook生成的文件默认位于程序运行的目录下,文件名为用户指定的文件名。可以使用workbook.write()方法将文件写入指定目录。例如:

FileOutputStream out = new FileOutputStream("test.xlsx");
workbook.write(out);
out.close();

可以使用workbook.dispose()方法来释放内存。

workbook.dispose();

使用java.io.File类来访问文件也是可以的。

File f = new File("test.xlsx");

或者使用文件路径直接访问

Path path = Paths.get("test.xlsx")

使用 SXSSFWorkbook 生成的文件会存放在内存中,你可以使用 SXSSFWorkbook 的 write 方法将文件写入磁盘,然后就可以使用 FileInputStream 或者其他方式从磁盘中获取到文件了。

public static void writeSXSSFWorkbookToFile(SXSSFWorkbook sxssfWorkbook, String filename) {
    FileOutputStream out = null;
    try {
        out = new FileOutputStream(filename);
        sxssfWorkbook.write(out);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (out != null) {
                out.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}