如何将应用数据保存到本地文件?如何从本地文件加载数据到应用中?我实现的步骤是:
应用(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();
}
}