当前位置: 首页 > news >正文

1688货源网官方网站入口7一12岁手工简单又漂亮

1688货源网官方网站入口,7一12岁手工简单又漂亮,地方门户网站取名,丹东网站网站建设程序员在做web等项目的时候#xff0c;往往都需要添加文件上传、下载、删除的功能#xff0c;有时是单文件#xff0c;有时多文件批量 操作#xff0c;而这些功能的代码程序员可以自己收藏起来当成工具使用#xff0c;这样#xff0c;程序员在进行程序设计的时候就会事半…程序员在做web等项目的时候往往都需要添加文件上传、下载、删除的功能有时是单文件有时多文件批量 操作而这些功能的代码程序员可以自己收藏起来当成工具使用这样程序员在进行程序设计的时候就会事半功倍 了那么接下来的博客将会介绍各个框架的文件上传和下载功能的使用方法。 这篇博文主要是讲如何将多个文件压缩并下载下来主要有以下几个步骤 1。 首先先遍历出某个文件夹所含有的所有文件import java.io.File; import java.util.Vector; public class A {public static void recursion(String root, VectorString vecFile) { /*根据路径生成一个文件*/File file new File(root);File[] subFile file.listFiles(); /*遍历文件里面的所有文件*/for (int i 0; i subFile.length; i) { /*如果是文件夹则递归下去寻找文件夹里面的文件*/ if (subFile[i].isDirectory()) { recursion(subFile[i].getAbsolutePath(), vecFile); } else { /*如果不是文件夹的话就直接添加到vector容器里面去 vector类称作向量类它实现了动态数组用于元素数量变化的对象数组。像数组一样vector类也用从0开始的下标表示元素的位置但和数组不同的是当vector对象创建后数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。*/ 2.将遍历出来的文件进行压缩和下载String filename subFile[i].getName();vecFile.add(filename);}}}public static void main(String[] args) {VectorString vecFile new VectorString();recursion(D:/logs/2, vecFile);for (String fileName : vecFile) {System.out.println(fileName);}} } 2。 将遍历出来的文件进行压缩和下载一个一个压缩 2.1 设置下载文件的名称 String fileName temp1.zip;response.setContentType(text/html; charsetUTF-8); // 设置编码字符response.setContentType(application/x-msdownload); // 设置内容类型为下载类型response.setHeader(Content-disposition, attachment;filename fileName);// 设置下载的文件名称OutputStream out response.getOutputStream(); // 创建页面返回方式为输出流会自动弹出下载框System.out.println(配置成功);2.2 创建压缩文件需要的空的zip包 String zipBasePath request.getSession().getServletContext().getRealPath(/logs/2/);/* 输出basePath的路径方便调试 */System.out.println(zipBasePath);/* 创建压缩文件需要的空的zip包 这里是自动生成的不用我们自己去生成 */String zipFilePath zipBasePath temp.zip;System.out.println(create the empty zip file successfully??????);2.3 根据临时的zip压缩包路径创建zip文件 File zip new File(zipFilePath);if (!zip.exists()) {zip.createNewFile();} System.out.println(create the zip file successfully);2.4 创建zip文件输出流 FileOutputStream fos new FileOutputStream(zip);ZipOutputStream zos new ZipOutputStream(fos);System.out.println(create the empty zip stream successfully);2.5 循环读取文件路径集合获取每一个文件的路径将文件一个一个进行压缩 for (String fp : vecFile) {File f new File(fp); // 根据文件路径创建文件zipFile(f, zos); // 将每一个文件写入zip文件包内即进行打包}System.out.println(get the path successfully);// fos.close();//如果这样关两次的话会报错java.io.IOException: Stream closedzos.close();System.out.println(ok??);2.6 将打包后的文件写到客户端有两种方法可以实现下面会进行介绍这里使用缓冲流输出 InputStream fis new BufferedInputStream(new FileInputStream(zipFilePath));byte[] buff new byte[4096];int size 0;while ((size fis.read(buff)) ! -1) {out.write(buff, 0, size);}System.out.println(package is packed successfully);2.7 释放和关闭输入输出流out.flush();//清楚缓存out.close();fis.close();2.8 文件压缩的方法public void zipFile(File inputFile, ZipOutputStream zipoutputStream) {try {if (inputFile.exists()) { // 判断文件是否存在if (inputFile.isFile()) { // 判断是否属于文件还是文件夹// 创建输入流读取文件FileInputStream fis new FileInputStream(inputFile);BufferedInputStream bis new BufferedInputStream(fis);// 将文件写入zip内即将文件进行打包ZipEntry ze new ZipEntry(inputFile.getName()); // 获取文件名zipoutputStream.putNextEntry(ze);// 写入文件的方法同上byte[] b new byte[1024];long l 0;while (l inputFile.length()) {int j bis.read(b, 0, 1024);l j;zipoutputStream.write(b, 0, j);}// 关闭输入输出流bis.close();fis.close();} else { // 如果是文件夹则使用穷举的方法获取文件写入ziptry {File[] files inputFile.listFiles();for (int i 0; i files.length; i) {zipFile(files[i], zipoutputStream);}} catch (Exception e) {e.printStackTrace();}}}} catch (Exception e) {e.printStackTrace();}}这个是我在团队中的一个项目开发过程。在这个过程中我主要遇到了几个常见的问题不过最后都一一被我解决掉了。 1. 因为我要下载压缩的文件是一个日志不断动态生成的文件所以需要先对其复制到另外一个文件夹再进行压缩以及下载 2. 对IO流的一些 知识不是很熟悉学习并参考https://blog.csdn.net/weixin_37766296/article/details/80070847文件从一个文件夹复制到另一个文件夹// 读写文件public static void copy1() throws Exception{ FileInputStream fis new FileInputStream(C:\\Users\\Administrator\\Desktop\\1\\log.txt);原文件路径 FileOutputStream fos new FileOutputStream(D:\\java1\\eclipse\\javadownload\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp1\\wtpwebapps\\SCNU_OAuth2\\logs\\1\\log.txt); int len 0; byte[] buf new byte[1024]; while ((len fis.read(buf)) ! -1) { fos.write(buf, 0, len); } fos.close(); fis.close(); } /*复制过去之后格式发生了变化故放弃这个方法*/public void copy2() {FileWriter fw null;BufferedReader br null;try {fw new FileWriter(D:\\java1\\eclipse\\javadownload\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp1\\wtpwebapps\\SCNU_OAuth2\\logs\\1\\log.txt,true);br new BufferedReader(new InputStreamReader(new FileInputStream(C:\\Users\\Administrator\\Desktop\\1\\log.txt), UTF-8));原文件路径String line null;while ((line br.readLine()) ! null) {// System.out.println(文件内容: line);fw.write(line);fw.flush();}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (fw ! null) {try {fw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}对于单个文件下载 可以参考https://blog.csdn.net/alan_liuyue/article/details/72772502 参考博文https://blog.csdn.net/alan_liuyue/article/details/72772502里面关于流的关闭有点瑕疵欢迎大家前来讨论~
http://www.zqtcl.cn/news/165476/

相关文章:

  • 网站制作公司多少费用正规的机械外包加工订单网
  • 网站的维护和推广2345网址大全设主页访问
  • 天津商城网站建设公司如何申请注册企业邮箱
  • 做家旅游的视频网站好给我一个可以在线观看的免费
  • 香奈儿网站建设做网站应该问客户什么需求
  • 永久免费ppt下载网站互联网上市公司一览表
  • 甘肃省建设工程168网站东营智能网站设计
  • 网站跨机房建设方案山西运城市建设局网站
  • 网站被k文章修改设计师图片素材
  • 建设银行益阳市分行桃江支行网站9377烈焰传奇手游官网
  • 网站收费怎么做沈阳建设工程信息网 等级中项网
  • 做网站后台教程视频杭州网站开发建设
  • 维度 网站建设优秀vi设计网站
  • 快速搭建网站工具海洋网络做网站不负责
  • 做电影资源网站服务器怎么选wordpress唱片公司模板
  • 医院网站建设投标要求wordpress文章的表是什么
  • 怎么做网站后门海外营销推广
  • 网站建设中英版网站要做手机版怎么做的
  • 安徽网站开发与维护专业阜阳建设部网站
  • 山东省住房和建设厅网站网站优化大计
  • 大良建网站织梦建设两个网站 视频
  • 用html5制作个人网站航空港建设局网站
  • 祥云平台建站网站备案通过什么可以备案
  • 免费建造网站系统php和wordpress
  • 九脉堂是做网站的网站权重不稳定
  • 网站怎么做来流量门户网站的发布特点
  • 网站设计相似侵权吗免费游戏网站建设
  • 湖北长安建设网站制作一个网站的步骤是什么
  • js网站开发成都房地产最新政策
  • 天津网站制作维护无锡网络推广外包