분석 자산 (JS이 파일을 압축 한) 아카이브 폴더를 압축하고, 전화 코드에 저장 JS JS 파일 전에 파일 압축 해제 안쪽에서 바깥는 일치 여부

난 당신이 때마다 앱을 열 수 있도록, 내가 자산 폴더에 저장 걸릴 수 있으며, 앱 렌더링을 시작할 때마다이 파일을 호출해야 JS 파일에서 추출은 일반적으로 디렉토리 앤드류스에 위치, 비교하는 데 사용되었다 JS는 비교되는 파일과 소스 파일을 압축, JS 파일이 수정되거나 손상되었는지 여부를 결정.

(콘텐츠 자산은 읽기 전용으로 쓸 수 없습니다 폴더)

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();
        }
    }
게시 된 원본 기사 · 원의 칭찬 0 · 조회수 6

추천

출처blog.csdn.net/XunYoua/article/details/104750259