清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
原理:
最简单的数据加密就是采用Base64,虽然会带有数据冗余,但是写法简单,不用做过多的修改,其实也可以采用异或加密。
代码:
这里就直接上代码吧,写法很简单。
public static final boolean DownlaodAppFile(Context mContext, String url, String cacheName, boolean replace) { File root = mContext.getExternalCacheDir(); if (!root.exists()) { root.mkdir(); } String root_path = root.getAbsolutePath(); File cacheFile = new File(root_path + "/" + cacheName); if (cacheFile.exists()) { if (!replace) { return true; } } File tmpFIle = new File(root_path + "/" + cacheName + ".tmp"); URL mURL = null; try { mURL = new URL(url); } catch (MalformedURLException e) { Log.i("Finals", "URL error"); e.printStackTrace(); return false; } HttpURLConnection conn = null; FileOutputStream fos = null; Base64OutputStream bos = null; try { fos = new FileOutputStream(tmpFIle); bos = new Base64OutputStream(fos, 45); conn = (HttpURLConnection) mURL.openConnection(); if (conn.getResponseCode() == 200) { // 创建连接 InputStream is = conn.getInputStream(); byte[] buffer = new byte[1024]; // 循环获取数据 int len = 0; while ((len = is.read(buffer)) != -1) { bos.write(buffer, 0, len); } // 释放资源 bos.close(); fos.close(); is.close(); conn.disconnect(); bos = null; fos = null; is = null; conn = null; tmpFIle.renameTo(cacheFile); System.out.println("下载完成"); } } catch (IOException e) { e.printStackTrace(); Log.i("Finals", "Url connection error"); return false; } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } return true; } public static final String ReadAppFile(Context context, String cacheName) { File root = context.getExternalCacheDir(); String rootpath = root.getAbsolutePath(); File cacheFile = new File(rootpath + "/" + cacheName); if (!cacheFile.exists()) { return ""; } String result = ""; try { FileInputStream fis = new FileInputStream(cacheFile); Base64InputStream bis = new Base64InputStream(fis, 45); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer = new byte[512]; int len = 0; while ((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len); } result = bos.toString(); bos.close(); bis.close(); fis.close(); bos = null; bis = null; fis = null; } catch (IOException e) { e.printStackTrace(); return ""; } return result; }