Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android将文件附加到zip文件而不必重写整个zip文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何将文件附加到现有的zip文件?我已经有了可以创建zip文件代码,除了一个大问题外,它的效果很好.它现在的工作方式,用户拍摄了一堆图片,最后,所有图片都被添加一个zip文件中,如果拍摄足够的照片,可能需要一段时间. :-(所以我想,我有一个非常好的和有效的解决方案.当拍摄照片时,我会在拍摄后立即将每张新照片添加到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,请注明来意。