如何将应用数据保存到本地文件?如何从本地文件加载数据到应用中?我实现的步骤是:
应用(java数据)<--org.json-->JSONString<--Context.IO-->本地文件
今天向读者讲解的是Context.IO部分。
File getDir(String name, int mode) | 获取/data/data/<packagename>/目录的子目录(如不存在就先创建 |
File getFilesDir() | 获取/data/data/<packagename>/files目录 |
File getCacheDir() | 获取/data/data/<packagename>/cache目录。应注意及时清理该目录,并节约使用空间 |
String[] fileList() | 获取/data/data/<packagename>/files目录下的文件列表。可与其他方 |
FileInputStream openFileInput(String name) | 打开现有文件进行读取 |
FileOutputStream openFileOutput(String | 打开文件进行写入,如不存在就创建它 |
Context.IO实现本地文件的字符串输入输出
public class SerializerUtils { public static void save(Context c,String fileName,String data) throws IOException{ Writer writer=null; try{ OutputStream out=c.openFileOutput(fileName, Context.MODE_PRIVATE); writer=new OutputStreamWriter(out); writer.write(data); }finally{ if(writer!=null){ writer.close(); } } } public static String load(Context c,String fileName)throws IOException{ StringBuilder data=new StringBuilder(); BufferedReader reader=null; try{ InputStream in=c.openFileInput(fileName); reader=new BufferedReader(new InputStreamReader(in)); String line=null; while((line=reader.readLine())!=null){ data.append(line); } }finally{ if(reader!=null){ reader.close(); } } return data.toString(); }}