有没有一种方法可以提供文件下载而无需从Java路径中读取文件?

湖北

在我的程序中,我有一个getRequest(JavaSpark),可以为我提供一个用Java创建的Excel文件供下载。

为此,我创建了Excel文件,将其保存在文件夹中,然后通过路径读取文件。

作品。

代码-ExcelCreation:

public void createPlanWorkbook() throws Exception {
    ...
    ... 
    do something with workbook...

    workBook.write("C:\\Users\\Develope\\Desktop\\Excel.xlsm");
}

代码-请求:

get("/excelfile", ((request, response) -> {
    response.header("Content-disposition", "attachment; filename=Excel.xlsm;");

    File file = new File("C:\\Users\\Develope\\Desktop\\Excel.xlsm");
    OutputStream outputStream = response.raw().getOutputStream();
    outputStream.write(Files.readAllBytes(file.toPath()));
    outputStream.flush();
    return response;
}));

我想知道是否还有另一种方法来实现这一目标。保存然后读取文件的步骤是否必要?或者有没有办法将文件直接从Javaobject放入请求中。

例如:

outputStream.write(ExcelCreaterObject().getWorkbook());
Utku Ozdemir

似乎您正在使用Apache POI SmartXls创建Excel工作簿。查看其Javadoc,似乎该Workbook.write方法接受要写入的输出流。在此处输入图片说明

因此,您应该能够直接写入响应流,例如:

get("/excelfile", ((request, response) -> {
    response.header("Content-disposition", "attachment; filename=Excel.xlsm;");
    File file = new File("C:\\Users\\Develope\\Desktop\\Excel.xlsm");
    OutputStream outputStream = response.raw().getOutputStream();
    // do some stuff with the workbook
    workbook.write(outputStream);
    return response;
}));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

VS Code:有没有一种方法可以读取csv文件而无需指定完整路径?

有没有一种方法可以使用 Android AWS SDK 从 Amazon S3 存储桶中读取文件上下文而无需下载文件?

有没有一种方法可以从CGImage中读取数据而无需内部缓存?

有没有一种方法可以专门针对Windows路径检查Java中的文件路径?

有没有一种方法可以编辑zip文件中的文件,而无需先显式提取文件?

在Netbeans中,有没有一种方法可以显示类中的所有公共变量和方法,而无需实际生成接口文件?

python中有没有一种方法可以执行文件中的所有功能而无需显式调用它们?

有没有一种方法可以为app.yaml中的所有静态文件设置默认的HTTP标头,而无需重复?

有没有一种方法可以查看实时系统中MaxClients值是多少,而无需查看配置文件

在git中,有没有一种方法可以显示未跟踪的隐藏文件而无需应用隐藏功能?

有没有一种方法可以获取执行或编译的.java文件的文件路径?

有没有一种方法可以通过httpurlconnection下载.jar文件?

有没有一种方法可以读取C ++中的文件文件夹?

有没有一种方法可以存储此变量而无需重置

有没有一种方法可以逐行读取Excel文件

在VB中,有没有一种方法可以创建当前类型的实例而无需命名呢?

有没有一种方法可以改变颜色而无需在C ++中输出ANSI转义序列?

Intershop:有没有一种方法可以从ISML的属性文件中读取值?

有没有一种方法可以将文件设置为仅在GODOT中读取

有没有一种方法可以获取域的完整区域文件而无需联系其主机?

有没有一种方法可以查看cPickle或Pickle文件内容,而无需在Windows中加载Python?

有没有一种方法可以向LESS文件添加前缀而无需将其编译为CSS?

有没有一种方法可以kubectl应用目录中的每个文件?

有没有一种方法可以在Java中执行ORM,而无需使用诸如Hibernate之类的第三方库?

有没有一种简单的方法可以修改反编译的文件而无需处理其依赖项?

有没有一种方法可以使用Java 8中的Files.lines读取序列化的文件

有没有一种方法可以通过curl或wget命令从页面下载所有.txt文件

有没有一种方法可以通过Java中的VFS设置远程文件夹的权限?

有没有一种方法可以使用Java检查文件中的重复行?