讀取Assets下文件及文件寫入存儲卡
來源:程序員人生 發布時間:2014-11-05 08:48:55 閱讀次數:2372次
調用1個反編譯的.so文件,查看起加密和解密情況,需要解析上萬的數組,而so文件加密解密都是通過Byte來進行,又需要把String字符串轉化為 Byte,當把數據直接寫在代碼中就會提示多Byte數組過大。最后把數組寫到Assets文件加下,讀取txt文本文件。
讀取Assets方法以下:
<span style="font-size:14px;">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;
}</span>
然后 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⑻859⑴");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sbuf.append(str);
sbuf.append(",");
}
String.
split具有分割數組的作用,它已某1個特殊符號為分界點然落后行數組分割。
在把加密后的字符串寫到本地文件。方法以下
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;
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈