[Android(安卓)SQLite]数据存储与访问 - 内部存储
16lz
2021-01-26
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;@Overridepublic 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();}@Overridepublic 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 全局写模式,允许任何程序写入私有文件。
更多相关文章
- Android(安卓)6.0 读写SD卡权限问题(续)
- 常用到的Android命令(持续更新)
- java.io.IOException: open failed: EINVAL (Invalid argument)
- android 9.0 访问http
- Android(安卓)自定义 attr
- 图片切换ImageSwitcher&Gallery
- Http的请求方式
- 自定义加载动画的两种实现方式
- Android端通过httpCilent访问Tomcat服务器servlet