java 下载文件,复制文件

1,java通过浏览器下载文件

    @ApiOperation(value = "导出", notes = "", response = String.class)@GetMapping("/export")public HttpServletResponse export(String path, HttpServletResponse response) {
//        String path = "/home/lilun.txt";try {// path是指欲下载的文件的路径。File file = new File(path);// 取得文件名。String filename = file.getName();// 取得文件的后缀名。String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();// 以流的形式下载文件。InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();// 设置response的Headerresponse.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));response.addHeader("Content-Length", "" + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(buffer);toClient.flush();toClient.close();} catch (IOException ex) {ex.printStackTrace();}return response;}

2,复制文件到其他文件夹

    //复制文件到指定文件夹public void copyFile(String path){int lastIndex = path.lastIndexOf("/");String fileName = path.substring(lastIndex+1,path.length());String targetDir = "/home/fy/targetexportdata/";String targetDirFile = targetDir+fileName;File fs = new File(targetDir);if (!fs.exists()) {fs.mkdirs();}try (FileInputStream fis = new FileInputStream(path);FileOutputStream fos = new FileOutputStream(targetDirFile)) {byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = fis.read(buffer)) != -1) {fos.write(buffer, 0, bytesRead);}System.out.println("文件复制成功!");} catch (IOException e) {e.printStackTrace();}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux C语言 42-进程间通信IPC之网络通信(套接字)

Linux C语言 42-进程间通信IPC之网络通信(套接字) 本节关键字:C语言 进程间通信 网络通信 套接字 TCP UDP 相关库函数:socket、bind、listen、accept、send、recv、sendto、recvfrom 参考之前的文章 Linux C语言 30-套接字操作…

k8s部署单机模式的minio

k8s部署单机模式的minio 一、说明二、yaml内容三、步骤3.1 创建资源3.2 查看启动日志3.2 查看svc并访问控制台 一、说明 项目使用minio,准备在k8s环境部署一套minio试用。 1.关于minio的原理和概念参考: https://mp.weixin.qq.com/s?__bizMzI3MDM5NjgwNg&mid…

国防科技大博士招生入学考试【50+论文主观题】

目录 回答模板大意创新和学术价值启发 论文分类(根据问题/场景分类)数学问题Efficient Multiset Synchronization(高效的多集同步【简单集合/可逆计数Bloom过滤器】)大意创新和学术价值启发 An empirical study of Bayesian netwo…

Python中函数添加超时时间,Python中signal使用

from time import time, sleepimport signal# 模拟要删除5条数据,中间有超时的i 5# 超时后执行的方法def timeout_handler(signal, frame):# 引发异常raise TimeoutError("删除第" str(i) "条,超时!")# 或者执行其他操作,不往外抛异常(超时的函数不会被…

JAVA代码优化:字符串工具类

字符串工具类,提供了一系列处理字符串的常用方法,包括判空、截取、格式化、转换等功能。 nvl(T value, T defaultValue):用于获取参数不为空的值,如果参数为空则返回默认值。 isEmpty和isNotEmpty系列方法:用于判断集…

使用Spring Cloud搭建一个项目框架之父子模块的创建

前言 说实在的,Spring Cloud的这个系列,很多人都写过,写的比博主好的一大堆,网友们百度一下,就可以发现很多很多,甚至有一批都是系列文章,我只不过之前学过一段时间,但是过了一段时…

ubuntu 系统部署 Stable Video Diffusion

11月21日,stability.ai 发布了生成式视频模型 Stable Video Diffusion(SVD) 。 官方博客链接:Introducing Stable Video Diffusion — Stability AIgit地址:GitHub - Stability-AI/generative-models: Generative Mod…

Failure[ERROR_GET_BUNDLE_INSTALLER_FAILED]【Bug已解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析(Bug已找到原因):解决方案(Bug已解决):Bug解决总结项目场景: 在运行/调试过程中出现“Failure[ERROR_GET_BUNDLE_INSTALLER_FAILED]”错误。 报错如下: 11/17 11:14:05: Launching com.example.helloworld $ hdc shell am force-…

ElasticSearch基础知识

ElasticSearch是一个高扩展的分布式全文搜索引擎,基于Lucene作为核心实现所有索引和搜索的功能。 使用场景: (1)搜索领域:如维基百科、谷歌,全文检索等。 (2)网站具体内容&#xf…

CentOS部署python Flask项目

CentOS部署python Flask项目 将项目打包成tar.gz包并上传到公网linux服务器(centos) 将整个文件夹压缩为xxx.tar.gz tar -zcvf xxx.tar.gz 文件夹名挑选文件进行打包 tar -zcvf xxx.tar.gz file1 file2 file3上传到linux服务器 scp xxx.tar.gz 用户名服务器ip:上传到服务…

errors包源码理解

文章目录 前言一、概述二、源码理解包函数NewUnwrapIsAsJoin 结构errorStringerrorString方法Error joinErrorjoinError方法ErrorUnwrap 变量ErrUnsupportederrorType 总结 前言 本文章帮助大家对errors包的理解。 一、概述 errors是Go语言内置的标准库之一,用于处…

聊聊 Jetpack Compose 的 “状态订阅自动刷新” -- mutableStateListOf

Jekpack Compose “状态订阅&自动刷新” 系列: 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - MutableState/mutableStateOf 】 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - remember 和重组作用域 】 【 聊聊 Jetpack Compose 的 …

腾讯云轻量应用服务器怎么安装宝塔Linux面板?

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

洗袜子的洗衣机哪款好?最好用的迷你洗衣机推荐

内衣洗衣机是一种专门用于清洁内衣裤以及袜子等等贴身衣物的小型洗衣机。对于大部分的用户而言,内衣裤作为着我们日常生活中必不可少的贴身衣物,因此对于日常所穿内衣裤的清洁和卫生都是非常重要。不仅涉及到隐私部位的卫生安全,更容易影响自…

前端路由的hash模式和history模式

前端路由是现代单页面应用(SPA)中不可或缺的一部分,它允许用户在不重新加载整个页面的情况下,实现页面之间的切换。在前端路由的实现中,Hash模式和History模式是两种常见的技术。本文将深入探讨这两种模式的原理和区别…

javaEE -14(10000字 JavaScript入门 - 1)

一:初始 JavaScript JavaScript (简称 JS)是世界上最流行的编程语言之一,它是一个脚本语言, 通过解释器运,主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行. JavaScript 和 HTML 和 CSS 之间的关系: HTML…

(C++)和为s的两个数字--双指针算法

个人主页:Lei宝啊 愿所有美好如期而遇 和为S的两个数字_牛客题霸_牛客网输入一个升序数组 array 和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果。题目来自【牛客题霸】https://www.nowcoder.com/practice/390da4f7a…

牛客剑指offer刷题其他算法篇

文章目录 构建乘积数组题目思路代码实现 第一个只出现一次的字符题目思路代码实现 替换空格题目思路代码实现 调整数组顺序使奇数位于偶数前面(一)题目思路代码实现 数组中出现次数超过一半的数字题目思路代码实现 整数中1出现的次数(从1到n整数中1出现的次数&#…

【力扣热题100】207. 课程表 python 拓扑排序

【力扣热题100】207. 课程表 python 拓扑排序 写在最前面207. 课程表解决方案:判断是否可以完成所有课程的学习方法:拓扑排序实现步骤Python 实现性能分析结论 写在最前面 刷一道力扣热题100吧 难度中等 https://leetcode.cn/problems/course-schedule…

探索C++14新特性:更强大、更高效的编程

探索C14新特性:更强大、更高效的编程 C14并没有太大的改动,就连官方说明中也指出,C14相对于C11来说是一个比较小的改动,但是在很大程度上完善了C11,所以可以说C14就是在C11标准上的查漏补缺。 C14在2014年8月18日正式…