解析zip文件-不生成临时文件的办法


package com.test;

import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;


public class ReadData {
public static void main(String args[])throws Exception{
File f = new File("/home/upload/TwitterBig.zip");
InputStream in = new FileInputStream(f);
byte bytes[]=new byte[(int)f.length()]; //创建合适文件大小的数组
in.read(bytes); //读取文件中的内容到b[]数组
in.close();

ByteArrayInputStream fis = new ByteArrayInputStream(bytes);
ZipInputStream zis = new ZipInputStream(fis);

ZipEntry ze = null;

while((ze = zis.getNextEntry()) != null){
String name = ze.getName();
System.out.println("File name****"+ze.getName());

long size = ze.getSize();

byte[] binary = readZipEntry(zis,size);
writeFile(binary,"/home/upload/parese/"+ze.getName());
}


}

private static byte[] readZipEntry(ZipInputStream zipIn, long size)
throws Exception {
ByteArrayOutputStream output = new ByteArrayOutputStream();
int oneByte = -1;
long offset = 0L;

try {
while ((oneByte = zipIn.read()) > -1) {
output.write((byte) oneByte);
offset++;
if (offset == size) {
break;
}
}
} finally {
output.close();
}
return output.toByteArray();
}

private static void writeFile(byte[] content, String filename) throws IOException {

File file = new File(filename);

if (!file.exists()) {
file.createNewFile();
}

FileOutputStream fop = new FileOutputStream(file);
BufferedOutputStream buff = new BufferedOutputStream(fop);

buff.write(content);
buff.flush();
buff.close();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注意事项 ------------------------------------------------ 1、在使用升级程序之前,确保您已经对系统进行了备份。 2、建议在操作之前本地进行测试升级,在没有任何问题后再进行上传。 确保程序的完整性 3、在您修改了程序或数据库结构以后我们不能保证升级能够完全成功。   升级方法 ------------------------------------------------ 1. 将 upload 下所有的文件上传至网站根目录覆盖。 2. 访问upgrade目录(例如http://test.com/upgrade/), 执行升级。 3. 登陆管理后台,清除缓存,保存一次系统选项,然后再清除缓存。   --------------------------------------- | UWA 1.x 增强或修正功能列表 | ---------------------------------------   1.3.0 ------------------------------------------------- [√] pfa默认参数完善 [√] 路由地址配置全部小写 [√] ! pfa修复C函数 [√] 默认数据完善:默认关于页html命名 [√] 静态生成增强,后台管理模板不用一起复制 [√] 添加频道模版(包含下级频道链接) [√] 添加权限管理[会员审核,会员禁止] [√] 批量审核和禁止会员 [√] !频道html目录判断方式更新 [√] 后台首页档案状态显示 [√] 后台档案列表添加频道筛选 [√] 完善后台菜单分类/列表显示 [√] 添加文档时选中预选频道 [√] 频道列表管理页快速更改名称、快速添加内容 [√] 添加频道后自动更新地址 [√] 单页编辑后可立即更新地址和html [√] 完善内容页样式 [√] 水印文件默认地址 [√] 列表默认不显示年份 [√] 远程附件格式判断 [√] 修复远程附件返回地址错误 [√] 默认table样式 [√] 完善菜单管理列表排序 [√] 完善档案管理更改频道 [√] 完善获取父级频道 [√] 单页列表显示当前高亮 [√] 删除未用js引用 [√] 频道信息添加父频道属性 [√] 完善模版 [√] 完善数据库结构 [√] 完善安装,创建临时数据文件 [√] Pfa内置采集类和Snoopy类 [√] 完善后台首页显示 [√] 完善安装程序界面美化/英文语言文件 [√] 安装设置增强(1数据库连接类型设置,2数据库端口, 3管理员邮箱) [√] 默认使用mysqli连接 [√] 数据库类增加 [√] 后台日志下载模板 [√] 档案默认不获取摘要 [√] 管理页新开页面查看网站 [√] 系统图片更新logo [√] 删除未用广告位 [√] 完善默认排序,便于修改 [√] 修改获取远程缩略图的超时时间,保证远程获取失败时仍能添加文章 [√] 已知localhost不能获取远程图片 [√] 修复购买档案后自动添加的收藏 档案地址为空 [√] 修复自定义档案属性错误 [√] 完善后台文件管理列表页 [√] 完善前台/后台菜单图标 [√] 增加管理员日志管理 [√] 删除无用图片 [√] 完善语言 [√] 档案列表页:如果制定了频道则预先制定模型,以便新建同类档案 [√] 完善Db中对where中的解析 [√] pfa默认错误提示模板 [√] 档案页自定义模板,自定义路径,html名称 [√] 删除多页档案的html文件 [√] 完善部分文本
2. xhEditor进阶使用 2.1. 进阶使用指导 2.2. 初始化参数列表 2.3. API函数接口列表 2.4. 上传程序开发规范 2.5. 插件开发指南 2.6. 皮肤设计指南 2.7. 关于二次开发 2.1. 进阶使用指导 阅读本章节请先阅读:xhEditor入门基础,若你已经熟悉xhEditor的基本使用,请往下继续。 xhEditor提供两种方式初始化编辑器: 方法1:利用class属性来初始化和传递各种初始化参数,例: class="xheditor {skin:'default'}" 方法2:利用xhEditor提供的jQuery插件接口来实现对特定textarea的初始化和传递参数,例: $('#elm1').xheditor(); 或者 $('#elm1').xheditor({tools:'mini'}); 特别说明:两种初始化方法只能选择其中一种使用,如果两种方法的代码同时存在页面中,方法2的代码不会有任何效果。 我们更倾向于推荐大家使用方法1,因为更简单易用,不涉及任何的Javascript代码。通过简单的参数设置即可定制各种效果的编辑器界面,简单易用且功能强大。 如果想实现更加复杂的交互应用,或者希望xhEditor编辑器能够和自己的Javascript代码实现互相访问,那么你可以选择使用方法2,相对具有更大的自由空间。 xhEditor也提供了即时的卸载编辑器方法: $('#elm1').xheditor(false); 2.2. 初始化参数列表 初始化参数示例代码: $('#elm1').xheditor({tools:'full',skin:'default',showBlocktag:true,internalScript:false,internalStyle:false,width:300,height:200,loadCSS:'http://xheditor.com/test.css',fullscreen:true,sourceMode:true,forcePtag:true,upImgUrl:"upload.php",upImgExt:"jpg,jpeg,gif,png"}); 初始化参数列表: tools:自定义工具按钮 参数值:full(完全),mfull(多行完全),simple(简单),mini(迷你) 或者自定义字符串,例如:'Cut,Copy,Paste,Pastetext,|,Source,Fullscreen,About' 完整按钮表: |:分隔符 /:强制换行 Cut:剪切 Copy:复制 Paste:粘贴 Pastetext:文本粘贴 Blocktag:段落标签 Fontface:字体 FontSize:字体大小 Bold:粗体 Italic:斜体 Underline:下划线 Strikethrough:中划线 FontColor:字体颜色 BackColor:字体背景色 SelectAll:全选 Removeformat:删除文字格式 Align:对齐 List:列表 Outdent:减少缩进 Indent:增加缩进 Link:超链接 Unlink:删除链接 Anchor:锚点 Img:图片 Flash:Flash动画 Media:Windows media player视频 Hr:插入水平线 Emot:表情 Table:表格 Source:切换源代码模式 Preview:预览当前代码 Print:打印 Fullscreen:切换全屏模式 About:关于xhEditor skin:皮肤风格选择 参数值:default(默认风格),o2007blue(Office 2007 蓝色),o2007silver(Office 2007 银色),vista(Vista),nostyle(NoStyle) layerShadow:阴影的深度(按钮面板和模式窗口的背景阴影) 参数值:0(不显示阴影),大于0的数值(显示阴影并设置阴影的深度) clickCancelDialog:点击任意位置取消按钮面板功能 参数值:默认true(开启点击取消功能),false(关闭点击取消功能,必需要点击“取消”按钮才能关闭按钮面板) showBlocktag:显示段落标签 参数值:true(显示段落标签),false(不显示) linkTag:样式链接link标签保留状态 参数值:true(保留样式链接link标签),false(清理样式链接link标签) internalScript:内部JS代码保留状态 参数值:true(保留内部JS代码),false(清理内部JS代码) inlineScript:内联JS代码保留状态 参数值:true(保留内联JS代码)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值