android的存储方式分为,SharedPreferences、文件存储数据 、数据库存储数据 、ContentProvider存储数据、网络存储,其中文件存储有以下几种模式,我们用一个小例子来说明:
首先我们新建一个android项目,预计显示界面如下:
然后再main函数中获取相应view,并且获得输入的数据,得到上下文对象:
private void init() {
button= (Button)findViewById(R.id.Button);
button.setOnClickListener(new ButtonClickListener());
}
private class ButtonClickListener implements View.OnClickListener{
private EditText filename;
private EditText fileview;
@Override
public void onClick(View v) {
filename =(EditText)findViewById(R.id.filename);
fileview = (EditText)findViewById(R.id.view);
String name = filename.getText().toString();
String view = fileview.getText().toString();
FileService service = new FileService(getApplicationContext());
}
}
}
接下来我们进行存储操作,新建一个类里面用来写存储方法:
首先写一个pravate的方法用mode_provate来存储数据:
public void save(String name, String view) throws Exception {
FileOutputStream outStream = context.openFileOutput(name, Context.MODE_PRIVATE);
outStream.write(view.getBytes());
outStream.close();
}
怎么指导文件是否保存成功了呢?这里我们捕获下异常,并对异常进行处理,
try {
service.save(name,view);
Toast.makeText(getApplicationContext(), "保存数据", 3).show();
} catch (Exception e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "保存失败", 3).show();
e.printStackTrace();
}
打印输出语句保存成功与否,保存的文件只有程序本身有权限,再次写入会删除原有文件重新创建,如果想要其他程序可以对文件进行读写操作,可以使用openFileOutput(name, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
只要原因是因为Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
l当他们两个以二进制存储的时候分别对应01,10.相加后为11,所有java可以对其进行识别。