判断assets文件夹下的zip压缩包(单个js文件压缩包)里面js文件是否和之前解压出来保存在手机中的js文件代码一致

我是用来对比,解压出来的js文件通常要放置在安卓目录里面,每次app启动时都要调用这个文件来进行渲染,所以在每次打开app的时候就拿存放在assets文件夹下的zip源文件来和js文件进行对比,判断js文件是否被修改了或者破损了。

(assets文件夹下的内容只可读取不可写入)

public void btn3(View view) {
        try {
            InputStream open = getResources().getAssets().open("bootPage.zip");
            ZipInputStream zipInputStream = new ZipInputStream(open);
            zipInputStream.getNextEntry();
            //未解压的zip文件
            BufferedReader bufferedReader1=new BufferedReader(new InputStreamReader(zipInputStream));
            //解压后的文件
            File fileStreamPath = getFileStreamPath("bootPage.js");
            FileInputStream fileInputStream = new FileInputStream(fileStreamPath);
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
            //判断解压后的文件在用户手机中是否被修改过了
            while (true){
                String s=new String();
                String s1=new String();

                try {
                    s = bufferedReader.readLine();//是解压后的文件 js
                    s1 = bufferedReader1.readLine();//是源文件zip
                }catch (NullPointerException e){
                    //读到底部了
                }
                boolean b1 = s1 instanceof String;//为false说明读到底部了
                boolean b2=s instanceof String;//为false说明读到底部了

                //其实应该用switch语句
                if (!b1&&!b2) {//两个文件都读完了
                    Toast.makeText(this, "一样", Toast.LENGTH_SHORT).show();
                    Log.e(TAG, "btn3: 读完了" );
                    break;
                }else if (!b1||!b2){//其中一个读完了,另一个没读完
                    Toast.makeText(this, "不一样", Toast.LENGTH_SHORT).show();
                    Log.e(TAG, "btn3: 不一样" );
                    break;
                } else if (b1 && b2) {//两个文件都没有读完,那么每次都进行对比
                    if (s.equals(s1)) {
                        Log.e(TAG, "btn3: 一样" );
                    }else {
                        Log.e(TAG, "btn3: 不一样" );
                        Toast.makeText(this, "不一样", Toast.LENGTH_SHORT).show();
                        break;
                    }
                }
                Log.e(TAG, "btn3: "+s );
                Log.e(TAG, "btn3: "+s1 );
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
发布了1 篇原创文章 · 获赞 0 · 访问量 6

猜你喜欢

转载自blog.csdn.net/XunYoua/article/details/104750259