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 全局寫模式,允許任何程序寫入私有文件。