此例為把資料寫在cache目錄裡面。
通常跟環境有關的資料都需要傳入context. 所以:
public String loadFileFromCache(Context context, String fileName) throws IOException, FileNotFoundException { if (fileName != null) { ContextWrapper cw = new ContextWrapper(context); BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(new File(cw.getCacheDir(), fileName)))); StringBuilder fileContent = new StringBuilder(); String line; while ((line = r.readLine()) != null) { fileContent.append(line); } r.close(); return fileContent; } return null; } public void writeFileToCache(Context context, String fileName) throws IOException { if (fileName != null) { ContextWrapper cw = new ContextWrapper(context); BufferedWriter fos = new BufferedWriter(new FileWriter(new File(cw.getCacheDir(), fileName))); fos.write(str); fos.flush(); fos.close(); } }
stackoverflow的高手們建議要套buffered iostream,
這樣在處理大資料的時候比較穩定。
處理字串一定要使用 reader / writer這兩個會針對字碼作處理的讀寫函數,
若使用一般的iostream,讀寫出來的資料都會變成亂碼。
使用StringBuilder的建議也是從stackoverflow來的。會比一直new string要快很多。
至於寫到外部sd卡或是其他地方的變化,還有改成讀寫一般2進檔的變化就自己來吧。
0 件のコメント:
コメントを投稿