此例為把資料寫在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 件のコメント:
コメントを投稿