난 당신이 때마다 앱을 열 수 있도록, 내가 자산 폴더에 저장 걸릴 수 있으며, 앱 렌더링을 시작할 때마다이 파일을 호출해야 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();
}
}