首页 > 编程语言 >java文件复制,文件下载

java文件复制,文件下载

时间:2023-04-14 16:00:19浏览次数:41  
标签:文件 java String fis is2 sos 复制 new

1. 下载文件

 

 

public void exportOpenFile(HttpServletResponse response) {
        // 通过工具类创建writer
        FileInputStream fis = null;
        ServletOutputStream sos = null;
        try {
            //设置响应头
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
            response.setHeader("Content-Disposition", "attachment;filename=ems_info_upload_and_print_zj_open.xlsx");
            String path = "/ems_info_upload_and_print_zj_open.xlsx";
            fis = new FileInputStream(this.getClass().getResource(path).getFile());
            sos = response.getOutputStream();
            IOUtils.copy(fis, sos);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("模板下载失败!");
        } finally {
            try {
                if (fis != null) {
                    fis.close();
                }
                if (sos != null) {
                    sos.flush();
                    sos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

 

2. 复制文件

 public AjaxResult importFile(MultipartFile file) {try {
            // 存储excel文件
            Calendar calendar = Calendar.getInstance();
            String fileFolderYear = String.valueOf(calendar.get(Calendar.YEAR));
            String fileFolderMonth = String.valueOf(calendar.get(Calendar.MONTH) + 1);
            String fileFolderDay = String.valueOf(calendar.get(Calendar.DATE));
            // 得到工程保存文件的路径
            String filePath = getSession().getServletContext()
                    .getRealPath("/" + "file" + "/ems_info_upload_print/" + fileFolderYear + "/"
                            + fileFolderMonth + "/" + fileFolderDay + "/" + userId + "/")
                    + "/";
            File file1 = new File(filePath);
            if (!file1.exists()) {
                file1.mkdirs();
            }
            InputStream is2 = file.getInputStream();
            // 文件大小
            int fileSize = is2.available();
            // 得到文件保存的位置(根据root来得到文件保存的路径在tomcat下的该工程里)
            String fileUuidName = IdUtil.simpleUUID() + "." + "xls";
            File excelFile = new File(filePath, fileUuidName);

            // 把文件写入到上面设置的路径里
            OutputStream os = new FileOutputStream(excelFile);
            IOUtils.copy(is2, os);
            /*byte[] buffer = new byte[400];
            int length = 0;
            while ((length = is2.read(buffer)) > 0) {
                os.write(buffer, 0, length);
            }*/
            os.flush();
            os.close();
            is2.close();
}

 

标签:文件,java,String,fis,is2,sos,复制,new
From: https://www.cnblogs.com/xxfcode/p/17318583.html

相关文章

  • 为github项目添加优秀的自述文件
    sudoapt-getupdatesudoaptinstallnpmnpxreadme-md-generator参考资料:https://github.com/kefranabg/readme-md-generator......
  • JavaScript 使用 reduce 方法实现简单的 i18n 功能
    JavaScript使用reduce方法实现简单的i18n功能i18n:国际化(Internationalization)的缩写使用Array.prototype.reduce()方法实现简单的i18n功能reduce()方法对数组中的每个元素按序执行一个由您提供的reducer函数,每一次运行reducer会将先前元素的计算结果作为参......
  • Springboot集成MongoDB存储文件、读取文件
    一、前言和开发环境及配置可以转载,但请注明出处。  之前自己写的SpringBoot整合MongoDB的聚合查询操作,感兴趣的可以点击查阅。https://www.cnblogs.com/zaoyu/p/springboot-mongodb.html 使用mongodb存储文件并实现读取,通过springboot集成mongodb操作。 可以有两种实现......
  • 在终端命令行中把输出复制到剪贴板的命令 All In One
    在终端命令行中把输出复制到剪贴板的命令AllInOneusecommandcopyfromtheTerminalLinux系统Debian/Ubuntu/RaspberryPiOS#RaspberryPi$grepshutdown|???https://www.raspberrypi.com/documentation/computers/os.htmlhttps://www.debian.org/m......
  • 列举说明Python同Java及C++的不同之处
    首先是C++C++是在C语言的基础上发展起来的,他包含了C语言的所有内容。同时,也引入了面向对象的概念。优点:1、他包含了C语言的内容,包括指针,使得C++在执行效率上特别的高效。2、引入面向对象的概念,使得开发效率提高。3、提供了很多的库,具有较好的封装性和移植性(代码)。缺点:1、C++比较难......
  • SpringMVC上传大型视频文件到服务器,解决方案
    ​PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指......
  • java 垃圾回收算法
    标记-清除把非垃圾对象进行标记,把未标记的进行清除。这是最基础的算法,别的算法都是基于此不断改进不足的地方效率不高(要看跟谁比,比如标记-复制就要快些)内存碎片:会产生大量不连续的内存碎片,导致可能无法给大对象分配内存标记-整理还是要先标记哪些对象是垃圾,标记了先不着......
  • JavaScript 之 JSON [4] parse()和stringify() -JSON字符串和JavaScript对象数据之间
    JavaScript之JSON[4]parse()和stringify()-JSON字符串和JavaScript对象数据之间的相互转换1、JSON.parse()JSON.parse()方法用于将一个JSON字符串解析为一个JavaScript对象。JSON字符串必须使用双引号包括属性名和字符串值,不能使用单引号或无引号。语法:JSON.parse(text,r......
  • 使用Java反射机制将类的属性名和属性值打印出来
    可以使用Java反射机制来读取类的属性名和属性值。以下是一个示例代码,可以输出指定类的所有属性及其对应的值:1publicstaticvoidprintFields(Objectobj){2Classclazz=obj.getClass();3Field[]fields=clazz.getDeclaredFields();4for(Fieldfie......
  • Java概述(简略)
    Java概述计算机程序:一系列有序指令的集合计算机语言发展史:机器语言-->汇编语言-->高级语言Java技术体系:JavaSE(JavaPlatform,StandardEdition标准版):允许您在桌面和服务器上开发和部署Java应用程序。Java提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需......