java将文件转成流文件返回给前端详细代码实例

 更新时间:2024年07月15日 10:16:05   作者:爱北的琳儿  
Java编程语言提供了强大的文件处理和压缩能力,下面这篇文章主要给大家介绍了关于java将文件转成流文件返回给前端的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

环境:jdk1.8,springboot2.5.3,项目端口号:9100

1.待转换的文件

一、路径

二、文件内容

2.controller中代码

package com.example.pdf.controller;

import com.example.pdf.service.GetFileStreamService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

/**
 * @author 
 * @date 2024/3/29 16:28
 * @describe
 */
@RestController
@RequestMapping(value = "test")
public class GetFileStreamController {

    @Resource
    private GetFileStreamService getFileStreamService;
	
	/**
     * 获取文件流
     */
    @GetMapping("getFileStream")
    public void getFileStream(HttpServletResponse response) {
        getFileStreamService.getFileStream(response);

    }

}

3.service中代码

package com.example.pdf.service;

import javax.servlet.http.HttpServletResponse;

/**
 * @author 
 * @date 2024/3/29 16:30
 * @describe
 */
public interface GetFileStreamService {

    /**
     * 获取文件流
     * @param response
     */
    void getFileStream(HttpServletResponse response);
}

4.实现类代码

package com.example.pdf.service.impl;

import com.example.pdf.service.GetFileStreamService;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;

/**
 * @author
 * @date 2024/3/29 16:31
 * @describe
 */
@Service
public class GetFileStreamServiceImpl implements GetFileStreamService {
    /**
     * 获取文件流
     */
    @Override
    public void getFileStream(HttpServletResponse response) {
        // 指定文件路径,获取file文件
        File file = new File("E:\\Desktop\\temps\\test.pdf");
        try {
            // 将文件转为文件输入流
            FileInputStream fileInputStream = new FileInputStream(file);
            // 获取响应的输出流
            OutputStream outputStream = response.getOutputStream();
            // 将文件转成字节数组,再将数组写入响应的输出流
            byte[] buffer = new byte[1024];
            int bytesRead = -1;
            while ((bytesRead = fileInputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            // 刷新输出流
            outputStream.flush();
            // 关闭流
            fileInputStream.close();
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5.postman中访问结果示例

6.浏览器中访问结果示例

在这里插入图片描述

总结  

到此这篇关于java将文件转成流文件返回给前端的文章就介绍到这了,更多相关java文件转成流文件返回前端内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JVM入门之JVM内存结构内容详解

    JVM入门之JVM内存结构内容详解

    这篇文章主要介绍了JVM入门之JVM内存结构内容详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Java中两个字符串进行大小比较的方法

    Java中两个字符串进行大小比较的方法

    这篇文章主要介绍了Java中两个字符串进行大小比较,符串是否相等比较,只能使用equals()方法,不能使用“==”,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Java利用条件运算符的嵌套来完成学习成绩的划分

    Java利用条件运算符的嵌套来完成学习成绩的划分

    这篇文章主要介绍了Java利用条件运算符的嵌套来完成学习成绩的划分,需要的朋友可以参考下
    2017-02-02
  • Redis内存数据库示例分析

    Redis内存数据库示例分析

    Redis本身的内容比较复杂。如果你上来,你应该研究一个细节点,比如连接池和数据结构。虽然可以直接了解某一点的详细来源内容,甚至尽快解决一些意外,但是容易淹没在失眠的细节中,整体控制不了Redis
    2022-12-12
  • 详解Maven项目Dependencies常见报错及解决方案

    详解Maven项目Dependencies常见报错及解决方案

    这篇文章主要介绍了详解Maven项目Dependencies常见报错及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • java中的DateTime的具体使用

    java中的DateTime的具体使用

    本文主要介绍了java中的DateTime的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • java中常用的字符串的比较方法(两种)

    java中常用的字符串的比较方法(两种)

    本文主要介绍了java中两种常用的字符串的比较方法。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • mybatis-plus getOne和逻辑删除问题详解

    mybatis-plus getOne和逻辑删除问题详解

    这篇文章主要介绍了mybatis-plus getOne和逻辑删除,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot实现联表查询的代码详解

    SpringBoot实现联表查询的代码详解

    这篇文章主要介绍了SpringBoot中如何实现联表查询,文中通过代码示例和图文结合的方式讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • java类的定义与使用举例详解

    java类的定义与使用举例详解

    这篇文章主要给大家介绍了关于java类的定义与使用的相关资料,类的方法是用来定义类的行为,在方法中通过操作类的成员变量、编写业务逻辑、返回 结果等实现类的业务行为,需要的朋友可以参考下
    2023-11-11

最新评论