文件存储:
所谓的文件存储,就是将数据存储在文件中,不对数据有任何的格式转换处理,所有的数据都将数原封不动的保存到文件当中去,这种方式比较适合存储一些简单的文本数据或者二进制数据,比如评论的时候,中途退出,这时候讲评论采用文件存储是极好的。下面我们就来看看具体用法。
作为文件存储主要有两大部分,第一如何讲文件存储到文件当中,第二如何讲数据从文件当中取出来。
将数据存储到文件中:
context类中提供一个openfileoutput()方法,可以用于将数据存储到指定的文件中,这个方法接受两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注意这里指定的文件名不可以包含路径,第二参数是文件的操作模式,主要是两种模式,mode_private所写入的内容将会覆盖原文件的内容,mode_append将以存在就往文件里面追加内容,不存在就创建新文件。openfileoutput()方法返回的是一个fileoutputstream对象,得到这个对象就可以使用java流的方式将数据写入到文件中了。
public void save(String inputText) { FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); } catch (IOException e) { e.printStackTrace(); } finally { try { { if (writer != null) { writer.close(); } } } catch (IOException e) { e.printStackTrace(); } } }
从文件中读取数据:
类似于将数据存储到文件中,context类中还提供了一个openfileinput()方法,用于从文件中读取数据,这个方法只接受一个参数,即要读取的文件名,并返回一个fileinputstram对象,得到这个对象之后再通过java流方式就可以将数据读取出来了。
public String load(){
FileInputStream in=null;
BufferedReader reader=null;
StringBuilder content=new StringBuilder();
try {
in=openFileInput("data");
reader=new BufferedReader(new InputStreamReader(in));
String line="";
while ((line=reader.readLine())!=null){
content.append(line);
}
}catch (IOException e){
e.printStackTrace();
}finally {
if (reader!=null){
try{
reader.close();
}catch (IOException e){
e.printStackTrace();
}
}
return content.toString();
}
}