歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android存儲——SD卡或者文件存儲實現

Android存儲——SD卡或者文件存儲實現

日期:2017/3/1 10:21:05   编辑:Linux編程

Android存儲——SD卡或者文件存儲實現。Android實現SD卡和實現內存文件存儲的做法基本是一樣的。只是取得文件路徑的方法不一樣,基本上跟java的文件操作是一致的,下面是程序的代碼。配置取的位置和實現有所不同,其他是一樣的,下面是代碼:

main.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent">
  6. <EditText android:id="@+id/edit1"
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:lines="4"/>
  10. <Button android:id="@+id/write"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:text="@string/write"/>
  14. <EditText android:id="@+id/edit2"
  15. android:layout_width="fill_parent"
  16. android:layout_height="wrap_content"
  17. android:editable="false"
  18. android:cursorVisible="false"
  19. android:lines="4"/>
  20. <Button android:id="@+id/read"
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content"
  23. android:text="@string/read"/>
  24. </LinearLayout>
在AndroidManifest清單文件中要對SD卡讀取進行支持。代碼如下:
  1. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在String.xml中添加兩個內容:
  1. <string name="read">讀取</string>
  2. lt;string name="write">寫入</string>
下面是文件實現的代碼:
  1. package cn.jason.io;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.PrintStream;
  6. import android.app.Activity;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12. public class FileTestActivity extends Activity {
  13. final String FILE = "jason.bin";
  14. @Override
  15. public void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. Button read = (Button) findViewById(R.id.read);
  19. Button write = (Button) findViewById(R.id.write);
  20. final EditText edit1 = (EditText) findViewById(R.id.edit1);
  21. final EditText edit2 = (EditText) findViewById(R.id.edit2);
  22. write.setOnClickListener(new OnClickListener() {
  23. @Override
  24. public void onClick(View v) {
  25. write(edit1.getText().toString());
  26. edit1.setText("");
  27. }
  28. });
  29. read.setOnClickListener(new OnClickListener() {
  30. @Override
  31. public void onClick(View v) {
  32. edit2.setText(read());
  33. }
  34. });
  35. }
  36. private String read() {
  37. try {
  38. FileInputStream fis = openFileInput(FILE);
  39. byte[] buffer = new byte[1024];
  40. int hasRead = 0;
  41. StringBuilder sb = new StringBuilder("");
  42. while ((hasRead = fis.read(buffer)) > 0) {
  43. sb.append(new String(buffer, 0, hasRead));
  44. }
  45. return sb.toString();
  46. } catch (IOException e) {
  47. e.printStackTrace();
  48. }
  49. return null;
  50. }
  51. private void write(String content)
  52. {
  53. try
  54. {
  55. // 以追加模式打開文件輸出流
  56. FileOutputStream fos = openFileOutput(FILE, MODE_APPEND);
  57. // 將FileOutputStream包裝成PrintStream
  58. PrintStream ps = new PrintStream(fos);
  59. // 輸出文件內容
  60. ps.println(content);
  61. ps.close();
  62. }
  63. catch (Exception e)
  64. {
  65. e.printStackTrace();
  66. }
  67. }
  68. }
Copyright © Linux教程網 All Rights Reserved