Android基础教程数据存储的文件存储
将数据保存到文件中,读取数据
1、新建FilePersistenceTest项目,修改activity_main.xml中的代码如下: ()只是为了输入文本内容而输入了EditText,无论输入什么,按back键都会丢失。 在回收数据之前保存到文件中) )。
Android : id=' @ id/activity _ main '
Android : layout _ width=' match _ parent '
Android : layout _ height=' match _ parent '
android:id='@ id/edit '
Android : layout _ width=' match _ parent '
Android : layout _ height=' wrap _ content '
Android : hint=' typesomethinghere ' /
2、将主活动代码修改为: (save ) )方法将文本内容保存到文件中,load ) )方法从文件中读取和应用数据。)
publicclassmainactivityextendsappcompatactivity {
私有编辑编辑;
@Override
protectedvoidoncreate (边界维护实例state )。
super.oncreate (savedinstancestate;
setcontentview (r.layout.activity _ main;
edit=(edittext ) findviewbyid ) r.id.edit;
字符串输入文本=load (;
if (! 对textutils.isempty(inputtext ) )//字符串进行非空值判定
edit.settext (输入文本);
edit.set selection (input text.length );
toast.maketext(this,' Restoring succeeded ',Toast.LENGTH_SHORT ).show );
}
}
@Override
重写保护性void onDestroy () on destroy () )可确保在销毁活动之前始终调用此方法
super.onDestroy (;
String inputText=edit.getText ().toString );
保存(输入文本);
}
公共语音保存(字符串输入文本) {
文件输出流out=null;
缓冲写入器写入器=null;
try{
out=openfileoutput('data ',Context.MODE_PRIVATE );
writer=newbufferedwriter (newoutputstreamwriter ) out );
writer.write (输入文本;
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}finally{
try{
if (写入器!=空) {
writer.close (;
}
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}
}
}
公共字符串加载
文件inputstream in=null;
缓冲读取器读取器=null;
stringbuilder content=new stringbuilder (;
try{
in=开放文件输入(数据);
reader=newbufferedreader (newinputstreamreader (in ) );
String line=' ';
while((line=reader.readline ) )!=空) {
内容. append (line;
}
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}finally {
if(reader!=空) {
try{
reader.close (;
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}
}
}
return content.toString (;
}
}
运行程序具有以下效果: (键入content,然后按back返回并重新打开。 )
感谢您的阅读。 希望对大家有帮助。 感谢您对本网站的支持。