大佬教程收集整理的这篇文章主要介绍了Android将文件附加到zip文件而不必重写整个zip文件?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是,我无法将文件添加到现有的zip文件中. :-(这是我到目前为止所做的.另外,请记住,这只是一个概念证明,我明白重新初始化for循环的每次迭代都是非常愚蠢的.循环的每次迭代都是应该代表另一个文件被添加,这很可能会很久以后,甚至可能一个小时后,这就是为什么我重置每次迭代的原因,因为应用程序将在添加文件之间关闭.如果我可以让这个工作,然后我将放弃for循环并将此代码放入一个每次拍摄照片时调用的函数.:-)
try { for(int i=0; i < _files.size(); i++) { //beginning of initial setup stuff BufferedInputStream origin = null; FiLeoutputStream dest = new FiLeoutputStream(_zipFile,falsE); ZipOutputStream out = new ZipOutputStream(new bufferedoutputstream(dest)); byte data[] = new byte[BUFFER]; out.setLevel(0); //I added this because it makes it not compress the data //at all and I hoped that it would allow the zip to be appended to //end of initial setup stuff //beginning of old for loop Log.v("Compress","Adding: " + _files[i]); FileInputStream fi = new FileInputStream(_files[i]); origin = new BufferedInputStream(fi,BUFFER); ZipEntry entry = new ZipEntry(_files[i].subString(_files[i].lasTindexOf("/") + 1)); out.putNextEntry(entry); int count; while ((count = origin.read(data,BUFFER)) != -1) { out.write(data,count); } origin.close(); //end of for old loop //beginning of finishing stuff out.close(); //end of finishing stuff } } catch(Exception E) { Log.e("ZipCreation","Error wriTing zip",E); e.printStackTrace(); }
此外,我已经尝试过
FiLeoutputStream dest = new FiLeoutputStream(_zipFile,truE);
如果你注意到,我将append设置为true,这实际上会将数据附加到现有文件中.有趣的是,它确实会将数据附加到原始文件中,但是,在我的计算机上提取文件后,写入的最后一个文件就是所有提取的文件,这很糟糕. :-(那么有没有办法开始编写一个zip文件,然后再添加它,并完成zip文件?我甚至考虑过可能使用ZipOutputStream并修改它以适应我需要的这个模型它应该在某种程度上可能吗?:-)
在此先感谢您的帮助!
以上是大佬教程为你收集整理的Android将文件附加到zip文件而不必重写整个zip文件?全部内容,希望文章能够帮你解决Android将文件附加到zip文件而不必重写整个zip文件?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。