[Android SQLite]数据存储与访问 - 内部存储
Android系统允许应用程序创建仅能够自身访问的私有文件,文件保存在设备的内部存储器上,在Linux系统下的/data/data/<package name>/files目录中
系统读取保存的文件
下面来演示程序
- public class Android_DBActivity extends Activity implements OnClickListener
- {
- private final String FILE_NAME = "fileDemo.txt";
- private TextView labelView;
- private TextView displayView;
- private CheckBox appendBox ;
- private EditText entryText;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- setupViews();
- }
- private void setupViews()
- {
- labelView = (TextView) findViewById(R.id.label);
- displayView = (TextView) findViewById(R.id.display);
- appendBox = (CheckBox) findViewById(R.id.append);
- entryText = (EditText) findViewById(R.id.entry);
- findViewById(R.id.write).setOnClickListener(this);
- findViewById(R.id.read).setOnClickListener(this);
- entryText.selectAll();
- entryText.findFocus();
- }
- @Override
- public void onClick(View v)
- {
- switch (v.getId())
- {
- case R.id.write:
- FileOutputStream fos = null;
- try
- {
- if (appendBox.isChecked())
- {
- fos = openFileOutput(FILE_NAME, Context.MODE_APPEND);
- }else
- {
- fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
- }
- String text = entryText.getText().toString();
- fos.write(text.getBytes());
- labelView.setText(String.format("文件写入成功,写入长度:%d", text.length()));
- } catch (FileNotFoundException e)
- {
- e.printStackTrace();
- } catch (IOException e)
- {
- e.printStackTrace();
- }finally
- {
- if (fos != null)
- {
- try
- {
- fos.flush();
- fos.close();
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- break;
- case R.id.read:
- displayView.setText("");
- FileInputStream fis = null;
- try
- {
- fis = openFileInput(FILE_NAME);
- if (fis.available() == 0)
- {
- return;
- }
- byte[] buffer = new byte[fis.available()];
- while(fis.read(buffer) != -1)
- {
- }
- String text = new String(buffer);
- displayView.setText(text);
- labelView.setText(String.format("文件读取成功,文件长度:%d", text.length()));
- } catch (FileNotFoundException e)
- {
- e.printStackTrace();
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- break;
- }
- }
- }
Android系统支持四种文件操作模式
MODE_PRIVATE 私有模式,缺陷模式,文件仅能够被文件创建程序访问,或具有相同UID的程序访问。
MODE_APPEND 追加模式,如果文件已经存在,则在文件的结尾处添加新数据。
MODE_WORLD_READABLE 全局读模式,允许任何程序读取私有文件。
MODE_WORLD_WRITEABLE 全局写模式,允许任何程序写入私有文件。
相关推荐
wintershii 2020-01-18
憧憬 2020-08-21
wa2003 2020-06-17
悟空大师 2020-06-06
辛佳雨 2020-06-02
fangxiaoji 2020-05-12
loviezhang 2020-04-17
Charlesbases 2020-04-16
whyname 2020-03-07
wzhwangzhuohui 2020-03-04
flyDeDog 2020-02-25
qijiqiguai 2020-02-13
zxznsjdsj 2020-02-02
chenjinlong 2020-01-31
大脸猫脸大 2020-01-26
东哥笔记 2020-01-17