歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發教程:數據存取之File淺析

Android開發教程:數據存取之File淺析

日期:2017/3/1 10:36:49   编辑:Linux編程
Android系統中提供了一種文件讀寫的方法,可以將一些數據以文件的形式保存在設備中。比如一些word文檔,PDF文檔,圖片,音頻,視頻文件等。

使用文件讀寫方法的步驟:

1.調用Context.openFileInput()方法獲得Java文件輸入流(FileInputStream)

2.調用Context.openFileOutput()方法獲得java文件輸出流(FileOutputStream)

3.使用Resources.openRawResource(R.raw.DataFile)方法返回InputStream

下面的具體實例,在一個Activity裡面創建兩個EditText和兩個Button,第一個EditText和Button將EditText的內容寫到文件file.txt文件中。第二個EditText和Button將內容從文件file.txt中讀取出來顯示。文件被默認保存在/data/data/package/files下面。

650) this.width=650;" height=137>

MainActivity.java

  1. package com.android.file;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;
  9. import android.widget.EditText;
  10. public class MainActivity extends Activity {
  11. //聲明文件名字符串常量
  12. private static final String FILE_NAME="file.txt";
  13. private Button writeBtn,readBtn;
  14. private EditText writeText,readText;
  15. @Override
  16. public void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main);
  19. writeBtn = (Button)findViewById(R.id.Button1);
  20. readBtn = (Button)findViewById(R.id.Button2);
  21. writeText = (EditText)findViewById(R.id.EditText1);
  22. readText = (EditText)findViewById(R.id.EditText2);
  23. writeBtn.setOnClickListener(new OnClickListener() {
  24. @Override
  25. public void onClick(View v) {
  26. //寫內容
  27. write(writeText.getText().toString());
  28. }
  29. });
  30. readBtn.setOnClickListener(new OnClickListener() {
  31. @Override
  32. public void onClick(View v) {
  33. //讀內容
  34. readText.setText(read());
  35. }
  36. });
  37. }
  38. private String read(){
  39. try {
  40. //實例化文件輸入流對象
  41. FileInputStream fis = openFileInput(FILE_NAME);
  42. //定義緩存數組
  43. byte[] buffer = new byte[fis.available()];
  44. //讀到緩沖區
  45. fis.read(buffer);
  46. return new String(buffer);
  47. } catch (Exception e) {
  48. e.printStackTrace();
  49. }
  50. return null;
  51. }
  52. private void write(String content){
  53. try {
  54. //實例化文件輸出流
  55. //openFileOutput(String name, int mode)
  56. //第一個參數文件名
  57. //第二個是模式
  58. //MODE_APPEND表示要創建的文件存在則新寫入的數據不會覆蓋以前的數據。
  59. FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);
  60. //寫內容
  61. fos.write(content.getBytes());
  62. //關閉文件流
  63. fos.close();
  64. } catch (Exception e) {
  65. e.printStackTrace();
  66. }
  67. }
  68. }
Copyright © Linux教程網 All Rights Reserved