上一篇學到使用SharedPerences進行數據存儲(http://www.linuxidc.com/Linux/2012-01/51442.htm),接下來學習一下使用File進行存儲 我們有時候可以將數據直接以文件的形式保存在設備中,
例如:文本文件,圖片文件等等
源碼下載地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2012年資料/1月/13日/Android中使用File文件進行數據存儲/
使用File進行存儲操作主要使用到以下的
①:public abstract FileInputStream openFileInput (String name)
這個主要是打開文件,返回FileInputStream
②:public abstract FileOutputStream openFileOutput (String name, int mode)
這個主要是寫入文件,如果該文件不存在,直接進行創建,返回FileOutputStream
Mode(主要有以下的四種的模式)
MODE_APPEND //在尾部追加
MODE_PRIVATE //私有
MODE_WORLD_READABLE //可讀
MODE_WORLD_WRITEABLE //可寫
③:FileInputStream(獲取文件輸入流)與FileOutputStream (獲取文件輸出流)這兩類在JavaIO 操作中很常見
接下來進行操作 保存成功之後講文件保存在當前應該程序的包名下的files/(可以改變存儲的其他路徑)
源代碼如下:
[java]
- package com.jiangqq.file;
-
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
-
- public class FileAcitivy extends Activity
- {
- private Button bt1, bt2;
- private EditText et1, et2;
-
- private static final String FILENAME = "temp_file.txt";
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- bt1 = (Button) this.findViewById(R.id.bt1);
- bt2 = (Button) this.findViewById(R.id.bt2);
- et1 = (EditText) this.findViewById(R.id.et1);
- et2 = (EditText) this.findViewById(R.id.et2);
- bt1.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- write(et1.getText().toString());
- Toast.makeText(FileAcitivy.this, "文件寫入成功", Toast.LENGTH_LONG)
- .show();
- }
- });
- bt2.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- et2.setText(read());
- Toast.makeText(FileAcitivy.this, "文件讀出成功", Toast.LENGTH_LONG)
- .show();
- }
- });
- }
-
- // 讀文件方法
- private String read() {
- try {
- FileInputStream inputStream = openFileInput(FILENAME);
- byte[] b = new byte[inputStream.available()];
- inputStream.read(b);
- return new String(b);
- } catch (Exception e) {
- }
- return null;
- }
-
- // 寫文件
- private void write(String content) {
- try {
- FileOutputStream fos = openFileOutput(FILENAME, MODE_APPEND);
- fos.write(content.getBytes());
- fos.close();
- } catch (Exception e) {
- }
- }
- }