Android-Context的IO功能

时间:2023-11-09 19:30:14

  如何将应用数据保存到本地文件?如何从本地文件加载数据到应用中?我实现的步骤是:

  应用(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目录下的文件列表。可与其他方
法配合使用,例如openFileInput(String)

FileInputStream openFileInput(String name) 打开现有文件进行读取

FileOutputStream openFileOutput(String
name, int mode)

打开文件进行写入,如不存在就创建它

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();
} }