//1.开始下载语言包 public static void downloadFileLanguage(String path) { activity.runOnUiThread(new Runnable() { @Override public void run() { System.out.print("-------java---downloadFileLanguage------path:" + path + "\n"); File sdDir = new File(activity.getFilesDir(), aikitPathReal);///data/user_de/0/org.cocos2d.demo/files/xzhd/aikit/ aikitPathInData = sdDir.getAbsolutePath() + "/"; FileUtils.createDirectory(aikitPathInData); String url = "https://tan-xin-game.oss-cn-beijing.aliyuncs.com/client/LandHengHonor/webPC5/RES_XTTS/" + path + ".zip"; DataTool.downloadFile(url, aikitPathInData, path + ".zip"); } }); }
/** * 下载zip文件 * * @param url */ public static void downloadFile(final String url, String aikitPathInData, String localzip) { OkHttpClient.Builder builder = new OkHttpClient.Builder().connectTimeout(20, TimeUnit.SECONDS).writeTimeout(5, TimeUnit.SECONDS).readTimeout(5, TimeUnit.SECONDS); Request request = new Request.Builder().url(url).build(); builder.build().newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { InputStream is = null; byte[] buf = new byte[4096]; int len = 0; FileOutputStream fos = null; // 储存下载文件的目录 String savePath = aikitPathInData;//Tools.isExistDir_html(filePath); try { is = response.body().byteStream(); long total = response.body().contentLength(); // File file = new File(savePath, getNameFromUrl(url)); File file = new File(savePath, localzip); fos = new FileOutputStream(file); long sum = 0; while ((len = is.read(buf)) != -1) { fos.write(buf, 0, len); sum += len; int progress = (int) (sum * 1.0f / total * 100); // 下载中 System.out.print("---------------progress:" + progress); } fos.flush(); } catch (Exception e) { // e.printStackTrace(); } finally { try { if (is != null) is.close(); } catch (IOException e) { } try { if (fos != null) fos.close(); } catch (IOException e) { } } //下载完成,先删除过时数据,并解压最新的热更新数据(必须这样操作 不然会导致无法覆盖旧数据,导致数据更新失败) // deleteOldData(); DataTool.unZip(aikitPathInData + localzip); } }); }