1
我想將一些字符串存儲在一個簡單的.txt文件中,然後讀取它們,但是當我想使用Base64對它們進行編碼時,它不再起作用了:它寫得很好,但閱讀不起作用。 ^^如何讀取/寫入用android.util.Base64編碼的字符串
寫方法:
private void write() throws IOException {
String fileName = "/mnt/sdcard/test.txt";
File myFile = new File(fileName);
BufferedWriter bW = new BufferedWriter(new FileWriter(myFile, true));
// Write the string to the file
String test = "http://google.fr";
test = Base64.encodeToString(test.getBytes(), Base64.DEFAULT);
bW.write("here it comes");
bW.write(";");
bW.write(test);
bW.write(";");
bW.write("done");
bW.write("\r\n");
// save and close
bW.flush();
bW.close();
}
read方法:
private void read() throws IOException {
String fileName = "/mnt/sdcard/test.txt";
File myFile = new File(fileName);
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader inBuff = new BufferedReader(new InputStreamReader(fIn));
String line = inBuff.readLine();
int i = 0;
ArrayList<List<String>> matrice_full = new ArrayList<List<String>>();
while (line != null) {
matrice_full.add(new ArrayList<String>());
String[] tokens = line.split(";");
String decode = tokens[1];
decode = new String(Base64.decode(decode, Base64.DEFAULT));
matrice_full.get(i).add(tokens[0]);
matrice_full.get(i).add(tokens[1]);
matrice_full.get(i).add(tokens[2]);
line = inBuff.readLine();
i++;
}
inBuff.close();
}
任何想法,爲什麼?
也非常感謝您的建議:) 完整的代碼比長3倍,所以我試圖簡化它,也許有點太快了:P 好吧,我沒有看到的Base64加當我用記事本在windows上打開我的文件時出現了斷行,我不得不使用notepad ++來查看它。 但即使是Base64.NO_WRAP和test.trim(),它仍然會添加額外的分隔線。你知道爲什麼嗎 ? –
它沒有 - 我通過在真實設備上運行代碼進行檢查。假設你已經刪除了舊文件內容,那麼必須添加額外的換行符。 – andr
對不起Base64.NO_WRAP很棒:D –