- 浏览: 181348 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
u010244357:
你用了部分是自己的包,怎么跑呢,先生。
如何在springMVC 中对REST服务使用mockmvc 做测试 -
Abird2Simba:
你用了部分是自己的包,怎么跑呢,先生。
如何在springMVC 中对REST服务使用mockmvc 做测试 -
javer:
javer 写道代码看着有点乱啊,怎么搞的 sorry,原来是 ...
如何在springMVC 中对REST服务使用mockmvc 做测试 -
javer:
代码看着有点乱啊,怎么搞的
如何在springMVC 中对REST服务使用mockmvc 做测试 -
u011643314:
你用了部分是自己的包,怎么跑呢,先生。
如何在springMVC 中对REST服务使用mockmvc 做测试
自定义的数据结构在解包的过程中用到,没有这个数据结构的话,解包就无从谈起了!
好了,直接上代码!酷毙的程序员一切尽在代码中!
这里最重要的莫过于心里把握清楚,每一个信息占多少个自己。同时对java操作文件要掌握清楚,这个可以总结一下,FileInputStream 读文件的时候是有一个文件指针的,随着你的byte[] buf 往后面移动!不需要你去管理,知道这一定就清楚了,为什么不需要去标记代码中前面的len 后面写文件的时候不要用了!
基本如此。既然是打包的话当然需要压缩。文件压缩算法采取那种呢!还再思考中,写完后将继续发出来!谢谢!希望看的大神们留下思路!
好了,直接上代码!酷毙的程序员一切尽在代码中!
public static void testjie(String src,String newPath) throws Exception{ File file =new File(src); //byte[] by = new byte[6]; FileInputStream fis = new FileInputStream(file); int len =4 ; String head = readFirst(fis,len); //文件个数 int fileNum = readNext(fis, len, 1); len++; List<String> pathList = new ArrayList<String>(); List<Integer> inlist = new ArrayList<Integer>(); for (int i = 0; i < fileNum; i++) { //路径长度 int path_Len = readNext(fis, len, 1); len++; //文件大小 int file_size = readNext(fis, len, 4); len++; inlist.add(file_size); len= len+path_Len; String path = readOffStr(fis,len,path_Len); pathList.add(path.trim()); } System.out.println("len:"+len); System.out.println(pathList.toString()); System.out.println(inlist.toString()); List<String> newPathList = change2Disk( newPath, pathList); System.out.println("new path:"+newPathList.toString()); for (int j = 0; j <newPathList.size(); j++) { File targetFile = new File(newPathList.get(j).replace("\\", "/")); if(!targetFile.exists()){ System.out.println(targetFile.getPath()); String dir = targetFile.getParent(); System.out.println(dir); File dirfile = new File(dir); dirfile.mkdirs(); targetFile.createNewFile(); } OutputStream os = new FileOutputStream(targetFile); byte[] buf = new byte[1024]; //xuyao du de int need = inlist.get(j); int readed = 0; while (readed <need ) { if(need - readed <buf.length ) { int ret = fis.read(buf, 0, need - readed > buf.length ? buf.length :need - readed); os.write(buf); System.out.println(new String(buf)); if(ret <0 ) { }else { readed += ret; } } else{ int ret = fis.read(buf, 0, need - readed > buf.length ? buf.length :need - readed); os.write(buf); System.out.println(new String(buf)); if(ret <0 ) { }else { readed += ret; } } } os.close(); } fis.close(); }
这里最重要的莫过于心里把握清楚,每一个信息占多少个自己。同时对java操作文件要掌握清楚,这个可以总结一下,FileInputStream 读文件的时候是有一个文件指针的,随着你的byte[] buf 往后面移动!不需要你去管理,知道这一定就清楚了,为什么不需要去标记代码中前面的len 后面写文件的时候不要用了!
/** * 解压至--->newPath * @param newPath * @param pathList * @return */ public static List<String> change2Disk(String newPath, List<String> pathList) { List<String> newPathList = new ArrayList<String>(); for (int i = 0; i < pathList.size(); i++) { String path = pathList.get(i).replace("\\", "/"); String pathArr[] = path.split(":"); String realPath = newPath + pathArr[1]; newPathList.add(realPath); } return newPathList; }
/** * read len off ->len * 读一段从偏移位置开始读 * @param fis * @param off * @param len * @return buf -> int * @throws IOException */ public static int readNext(FileInputStream fis ,int off,int len) throws IOException{ off++; if(len==1){ byte [] buf = new byte[off+len]; fis.read(buf,off,len); int length = (int)buf[off]; System.out.println( "this readNext length is :"+length); return length; }else{ byte [] buf = new byte[off+len]; fis.read(buf,off,len); byte [] buf2 = new byte[4]; for(int i=buf.length-4;i<=buf.length;i++){ buf2[3]=buf[buf.length-1]; buf2[2]=buf[buf.length-2]; buf2[1]=buf[buf.length-3]; buf2[0]=buf[buf.length-4]; } System.out.println( "this readNext ==byte 2 int== length is :"+bytesToInt(buf2)); return bytesToInt(buf2); } }
基本如此。既然是打包的话当然需要压缩。文件压缩算法采取那种呢!还再思考中,写完后将继续发出来!谢谢!希望看的大神们留下思路!
发表评论
-
使用 cxf axis1.x axis2 开发WebService
2014-02-26 14:50 1297cxf======================== ... -
基于red5 dsj 的java 处理视频流和一些疑问
2013-06-19 16:17 5591最近夭折了一个项目,由于我预研失败,同时我将被惩罚,被外派去 ... -
5分钟 熟练使用spring Aop
2013-06-09 09:56 4787声明:所有的5分钟系列博客都停留在使用的基础上,具体原理, ... -
5分钟 玩转google Gson
2013-06-05 17:18 10968google gson 是一个非常轻量的java 对象与j ... -
如何在springMVC 中对REST服务使用mockmvc 做测试
2013-06-05 09:06 46712spring 集成测试中 对mock 的集成实在是太棒了! ... -
边读边写【7】 ----java 多线程实战【Thread /Executors】
2012-04-20 17:04 1770前面2个月一直忙碌,但是还是不忘在iteye 上发发帖子,写写 ... -
struts2 上传下载模板
2012-04-20 09:38 2721第一 struts2 更新比较慢。核心的xwork 基本不变。 ... -
struts2 上传下载模板
2012-04-18 22:21 0struts2下载文件时出错提示:java.lang.Clas ... -
java乱码补充 : 移植乱码 问题
2012-04-18 12:00 1582上一篇: jquery ajax struts2 数据库等中 ... -
jquery ajax struts2 数据库等中文乱码问题解决大全
2012-04-18 09:31 4808ok 乱码了。 乱码第一件事,静下心来,思考一下这乱码出处的 ... -
java 内存的管理 转载▼
2012-04-17 16:39 1477java 内存的管理 转载▼ 内存的管理(1) 使用Ja ... -
边读边写【6】 ----序列化和反序列化
2012-04-16 15:26 0边读边写【6】 ----序列化和反序列化 -
边读边写【5】 ----java 并发包
2012-04-09 15:09 0java 并发包里面的几个常用的东西 ConCurrentH ... -
边读边写【2】 ----java 集合包之深入Map
2012-04-09 11:49 0Collection 中还有一个Set 但是常用的Set 都是 ... -
边读边写【3】 ----java 集合包之各个集合性能分析
2012-04-10 09:38 1861上次主要看了Map接口,以及Map的选择地址: 。http:/ ... -
边读边写【1】 ----java 集合包之深入List
2012-04-09 11:14 2527一、java 集合包最常用 ... -
hadoop的1TB排序
2012-04-09 09:22 1416hadoop的1TB排序 作者:nos ... -
java 调用lame.exe 将 wav 进行MP3压缩的一些问题
2012-03-05 10:24 5651首先下载附件 lame.exe copy到d 盘,因为代码默认 ... -
使用DES 加密方式对文件进行加密!!!
2012-01-14 17:07 7995DES加密由于在java中非常 ... -
java 大小端存储模式 转化
2012-01-14 16:52 14434所谓的大端模式:是指数据的高位,保存在内存的低地址中,而数据 ...
相关推荐
包子解包工具 教你如何吃包子-解包工具
PKG文件解包工具,能快速解包PKG文件,只需要输入简单命令,导出和导入文件目录即可。包含工具和教程。
rom解包 打包修改 做包工具-推荐版 资源将近1G大小。功能非常齐全 适合做第三方rom的工具 解包img 解包其他格式 打包卡刷包 打包其他格式 资源对miui兼容性发行好。比我使用的航母 等等兼容性都好 航母工具打包...
如何解包-编辑-打包boot.img文件.doc 如何解包-编辑-打包boot.img文件.doc
安卓rom解包打包制作修改rom软件 支持解包super-CRB 工具支持一键分解/合成Img、Super、Raw、Ext镜像(包括三星、索尼等定制格式)、一键编辑Build.prop、内核编辑修改、Apk反编译 中文语言操作 图形化界面 有需要...
站长吧论坛- 解包工具集合 www1.sm963.cn
rom 一键解包 打包 做第三方rom工具 完美版CM 资源较大。功能较多。 工具支持; 解包打包boot和recovery 解包打包ODM格式任意 解包打包system格式 解包打包bat后缀格式 解包打包br后缀格式 解包打包odm。img 解包打包...
手机端解包打包修改rom制作工具 持续收录更新 1---安卓手机安装版软件。用于解包打包修改rom工具 2----手机需要root权限。没有root权限的无法运行。请知悉 3----可以解包打包任意img格式的分区。支持super分区解打 4...
晶晨系盒子线刷固件解包打包工具 使用说明: 卡刷包 .zip后缀 放在工具目录下面即可 线刷包 .img后缀 放在工具目录里面的 in 文件夹里面
2022rom解包打包做第三方rom工具 支持super格式解包打包 提示:请下载解压后改名英文短目录后在操作 简单说明 支持目前机型的解包打包 支持img格式解包打包 支持super格式的解包打包 支持任意BR后缀解包打包 支持...
Mstar机型的boot.img和recovery.img解包打包工具使用方法把boot.img或者recovery.img放入到文件夹IN目录里面然后运行里面的bat文件即可实现解包和打包功能
晶晨固件解包打包工具
mstar系列ROM解包打包工具,用于乐视超级电视系统ROM的打包解包,定制ROM必备。
解包payload.bin文件,获取系统的相关.img文件。亲测有效。
AndroidCarrierClassTools 5.6替代品 安卓12解包 安卓11解包 一个ROM解包打包的工具,他支持Windows11/10 /8.1/8/7,且不需要wsl支持! 测试机型小米手机的865机型!865全系可用! 破解卡米 解锁分区 稳定精简 均可...
Thinkpad-win10-解包教程.docx
rom解包打包包 业界知名大佬工具 工具功能较多 各项解包格式支持
安卓机型一键解包打包工具 做rom的工具 解包 打包系统 解包rec 解包boot 打包rec 打包boot 解包系统 解包其他分区img等 对应到解包打包选项较多 资源自测较好 建议win7以上机型使用 资源较大。建议留有空间解压
super.img解包打包工具--lpunpack、lpmake、lpdump linux 下可用。 解压密码:https://modun.blog.csdn.net/ 使用说明:参见我的文章 https://blog.csdn.net/tabactivity/article/details/135969964?
网上搬运的瑞芯微固件解包打包工具_20140513_v5.0.exe_Beat3 1.瑞芯微跟全志平板的固件解包打包 2.平板电脑的管理工具 -平板电脑ROOT -平板电脑第三方API定制固件 -平板电脑改造功能等 3.Android开发者功能 -APK...