Context类提供了PenFileOutput()方法与onPenFileInput()方法。
onPenFileOutput():
用于将数据存储到指定的文件中。这个方法接受两个参数,第一个参数为文件名,在文件创建的时候使用就是这个名称,注意这个指定文件名不包含路径,所有的文件都是默认存储到/data/data/(项目包名)/files/目录下的。第二个参数是文件的操作模式,主要有两种模式可以选择MODE_PRIVATE和MODE_APPEND。MODE_PRIVATE:
默认操作,表示当指定同样文件名的时候,所写入的内容将会覆盖原文件中的内容。MODE_APPEND:
表示如果该文件存在,就往文件里面追加内容,不存在就创建新文件夹。MODE_WOELD_READABLE和MODE_WORLD_WRITEABLE:
这两种模式允许其他的应用程序对我们程序中的文件进行读写操作,由于这两种模式过于危险,容易引起应用的安全漏洞,已经在Android4.2版本废弃。onPenFileInput():
用于从文件中读取数据。它只接受一个参数,即要读取的文件名,然后系统会自动到/data/data/(项目包名)/files/目录下加载这个文件。Java IO流
如果不关闭的话,那么这个IO资源就会被他一直占用,这样别人想用就没有办法用了,所以这会造成资源浪费。关闭IO流最好写在finally中,如果出现一个异常,你就关不掉了。- 数据存储
public void save(String s) {
FileOutputStream out;
BufferedWriter writer = null;
try {
//fileName 文件名 MODE_PRIVATE:模式
out = openFileOutput(fileName, MODE_PRIVATE);//获取FileOutputStream 对象
//用Java Io流的方式将数据写入文件
writer = new BufferedWriter(new OutputStreamWriter(out));
try {
writer.write(s);//写入数据
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (writer != null)
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 数据读取
public String load() {
FileInputStream in;
StringBuffer content = new StringBuffer();
try {
//fileName文件名
in = openFileInput(fileName);//获得FileInputStream 对象
reader = new BufferedReader(new InputStreamReader(in));
String len = "";
try {
//读取一行数据
while ((len = reader.readLine()) != null)
{
content.append(len);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (reader != null)
try {
//用完Io流记得关闭
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return content.toString();
}
查看File是否写入成功
也可以把File文件导出来,用电脑查看你File里面的内容。