小编给大家分享一下java如何实现不解压直接读取压缩包中文件的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Java的优点是什么
1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。
上代码
@RequestMapping(value = "packageUpload") public void packageUpload(HttpServletRequest request, HttpServletResponse response) { File file = null; try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile multipartFile = multipartRequest.getFile("file"); if (null == multipartFile){ return; } String originalFilename = multipartFile.getOriginalFilename(); //判断上传文件必须是zip或者是rar否则不允许上传 String[] filename = originalFilename.split("\\."); if (!filename[1].equals("zip") && !filename[1].equals("rar")){ return; } //创建临时文件时,名称长度必须大于2 file = File.createTempFile(filename[0].length() <= 2 ? "压缩包" + filename[0] : filename[0], filename[1]); multipartFile.transferTo(file); file.deleteOnExit(); ZipFile zf = new ZipFile(file); Enumeration<?> zipEnum = zf.entries(); ZipEntry ze; while (zipEnum.hasMoreElements()) { ze = (ZipEntry) zipEnum.nextElement(); if (!ze.isDirectory()) { long size = ze.getSize(); if (size > 0) { String[] name = ze.getName().split("\\."); String emojiName = name[0]; String type = name[1]; if (type.equals("jpg") || type.equals("png") || type.equals("gif") || type.equals("jpeg")){ String[] split = emojiName.split("/"); String picName = split[1] + "." + type; InputStream is = zf.getInputStream(ze); logger.info("picName:" + picName + ",size:" + size + ",inputStream:" + is); ///到这里调用上传文件的方法上传这个图片就可以了 } } } } } catch (Exception e) { logger.error("packageUpload_error:" , e); } }
以上是“java如何实现不解压直接读取压缩包中文件的”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!