Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android數據存儲方式之:文件存儲

Android數據存儲方式之:文件存儲

編輯:關於Android編程

android應用大多數用的java開發,所以java的文件操作在android中完全適用,只不過android對手機而言,多了個外存儲設置SD卡。

----------------------------------------------簡單的界面布局-----------------------------------------------------------

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

android:id="@+id/input_edt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入保存內容" />

android:id="@+id/write_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存數據" />


android:id="@+id/read_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="讀取數據" />


 

-----------------------------功能代碼-----------------------------------------------------------

public class MainActivity extends Activity implements OnClickListener {
/**內容輸入框 */
private EditText inputEdt;
/**保存(寫入)按鈕 */
private Button writeBtn;
/**讀取按鈕 */
private Button readBtn;
/**要保存的文件名*/
private static final String FILE_NAME = "temp_file.txt";


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewsById();
}


private void findViewsById() {
inputEdt = (EditText) findViewById(R.id.input_edt);
writeBtn = (Button) findViewById(R.id.write_btn);
readBtn = (Button) findViewById(R.id.read_btn);
writeBtn.setOnClickListener(this);
readBtn.setOnClickListener(this);
}


@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.write_btn:
writeData();
break;
case R.id.read_btn:
String result = readData();
inputEdt.setText(result);
break;
}
}


/*
* 方法openFileOutput(FILE_NAME, Activity.MODE_PRIVATE); 參數說明:以FILE_NAME文件名,Activity.MODE_PRIVATE文件的應用模式,打開一個輸出流如果文件不存系統會為你創建一個 注意這裡的文件名稱不能包括任何的/或者/這種分隔符,只能是文件名
* 該文件會被保存在/data/data/應用名稱/files/temp_file.txt 文件的操作模式有以下四種:MODE_PRIVATE 私有(只能創建它的應用訪問) 重復寫入時會文件覆蓋MODE_APPEND 私有 重復寫入時會在文件的末尾進行追加,而不是覆蓋掉原來的文件 MODE_WORLD_READABLE 公用 可讀 MODE_WORLD_WRITEABLE 公用 可讀寫
*/
private void writeData() {
String content = inputEdt.getText().toString();
try {


FileOutputStream outputStream = openFileOutput(FILE_NAME, Activity.MODE_PRIVATE);
outputStream.write(content.getBytes());
outputStream.flush();
outputStream.close();
Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}


/**
* 把剛剛保存的數據讀出來
* */
private String readData() {
String content = "";
try {
FileInputStream inputStream = this.openFileInput(FILE_NAME);
byte[] bytes = new byte[1024];
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
while (inputStream.read(bytes) != -1) {
arrayOutputStream.write(bytes, 0, bytes.length);
}
inputStream.close();
arrayOutputStream.close();
content = new String(arrayOutputStream.toByteArray());


} catch (Exception e) {
e.printStackTrace();
}
return content;


}


/****************上面的內容是把內容存到手機內存中*************************************/
/**判斷SDcard是否存在並且可讀寫*/

private boolean isSDcardExist() {

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return true;
} else {
Toast.makeText(getApplicationContext(), "內存卡不可用", 1000).show();
return false;
}
}


/**往內存卡中存文件*/
public void writeToSDCard(String filename, String filecontent) throws Exception {
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream outStream = new FileOutputStream(file);
outStream.write(filecontent.getBytes());
outStream.close();
}


/**讀SD卡中對應文件的內容*/
private String readSDCardFile(String filePath, String fileName) {
String result = "";
try {
File file = new File(filePath, fileName);
FileInputStream is = new FileInputStream(file);
byte[] b = new byte[is.available()];
is.read(b);
result = new String(b);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

}

---------注:-------------------------------------------

SD卡操作不要忘記在AndroidManifest.xml中添加對應權限:


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved