springboot下载服务器resources下excel文件内容乱码

 @RequestMapping("/downloadTemp")
 public void downloadTemp(HttpServletResponse response) throws UnsupportedEncodingException{
        response.setContentType("application/octet-stream;charset=utf-8");
        response.setHeader("Content-Disposition","attachment;fileName=导入模板.xls");
        try {
            OutputStream out = response.getOutputStream();
            Resource resource = new ClassPathResource("templates/导入模板.xls");
            InputStream in = new FileInputStream(resource.getFile());
            IOUtils.copy(in,out);
            out.flush();
            out.close();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 中,你可以使用 `ResourceLoader` 来读取 `resources` 目录下的文件。`ResourceLoader` 是一个接口,Spring Boot 提供了 `ResourceLoader` 的实现类 `DefaultResourceLoader`。 以下是读取 `resources` 目录下文件的示例代码: ```java import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Component; @Component public class MyFileReader { private final ResourceLoader resourceLoader; public MyFileReader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } public String readFile(String filePath) throws IOException { Resource resource = resourceLoader.getResource("classpath:" + filePath); InputStream inputStream = resource.getInputStream(); // 使用 inputStream 读取文件内容,这里可以根据具体需求进行处理 // 例如使用 BufferedReader 逐行读取文件内容 BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder content = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { content.append(line).append("\n"); } reader.close(); inputStream.close(); return content.toString(); } } ``` 在上面的示例代码中,我们通过 `resourceLoader.getResource("classpath:" + filePath)` 方法来获取 `resources` 目录下的文件资源。然后,我们可以使用获取到的 `Resource` 对象来获取文件的输入流,并进行文件读取操作。 请注意,上述代码中使用了 `ResourceLoader` 的实现类 `DefaultResourceLoader`。在 Spring Boot 中,你无需手动创建 `DefaultResourceLoader` 对象,而是通过依赖注入的方式获取 `ResourceLoader` 对象。 希望这个示例能帮助到你。如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值