您好,登錄后才能下訂單哦!
本文實例講述了Android開發實現讀取Assets下文件及文件寫入存儲卡的方法。分享給大家供大家參考,具體如下:
調用一個反編譯的.so文件,查看起加密和解密情況,需要解析上萬的數組,而so文件加密解密都是通過Byte來進行,又需要把String字符串轉化為 Byte,當把數據直接寫在代碼中就會提示多Byte數組過大。最后把數組寫到Assets文件加下,讀取txt文本文件。
讀取Assets方法如下:
public String getFromAssets(String fileName) { String result = ""; try { InputStream in = getResources().getAssets().open(fileName); // 獲取文件的字節數 int lenght = in.available(); // 創建byte數組 byte[] buffer = new byte[lenght]; // 將文件中的數據讀到byte數組中 in.read(buffer); result = EncodingUtils.getString(buffer, ENCODING); } catch (Exception e) { e.printStackTrace(); } return result; }
然后
String strEn = getFromAssets("encode.txt");
txt中的文本文件是str,str,str這種形式,然后把
String[] encode1 = strEn.split(",");
通過字符串把 讀取的字符串轉化成字符串數組。
for(int i=0;i<encode1.length;i++){ sendString = encode1[i]; // sbuf.append(sendString+","); try { sendBytes = sendString.getBytes("UTF8"); byte[] s = Base64Encoder.B64Encode(sendBytes); str = new String(s, "ISO-8859-1"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } sbuf.append(str); sbuf.append(","); }
String.split
具有分割數組的作用,它已某一個特殊符號為分界點然后進行數組分割。
再把加密后的字符串寫到本地文件。方法如下
public String saveInfo2File(String mString) { StringBuffer sb = new StringBuffer(); try { long timestamp = System.currentTimeMillis(); String fileName = "encut" + ".txt"; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { String spath = Environment.getExternalStorageDirectory() .getPath() + "/A1/"; File sdir = new File(spath); if (!sdir.exists()) sdir.mkdirs(); FileOutputStream fos = new FileOutputStream(spath + fileName); sb.append(mString); fos.write(sb.toString().getBytes()); fos.close(); } return fileName; } catch (Exception e) { } return null; }
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android文件操作技巧匯總》、《Android視圖View技巧總結》、《Android編程之activity操作技巧總結》、《Android布局layout技巧總結》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。