Android存储——SD卡或者文件存储实现


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.   
  3. import java.io.FileInputStream;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.PrintStream;  
  7.   
  8. import android.app.Activity;  
  9. import android.os.Bundle;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;  
  12. import android.widget.Button;  
  13. import android.widget.EditText;  
  14.   
  15. public class FileTestActivity extends Activity {  
  16.       
  17.     final String FILE = "jason.bin";  
  18.       
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.main);  
  23.           
  24.         Button read = (Button) findViewById(R.id.read);  
  25.         Button write = (Button) findViewById(R.id.write);  
  26.           
  27.         final EditText edit1 = (EditText) findViewById(R.id.edit1);  
  28.         final EditText edit2 = (EditText) findViewById(R.id.edit2);  
  29.           
  30.           
  31.         write.setOnClickListener(new OnClickListener() {  
  32.               
  33.             @Override  
  34.             public void onClick(View v) {  
  35.                 write(edit1.getText().toString());  
  36.                 edit1.setText("");  
  37.             }  
  38.         });  
  39.           
  40.         read.setOnClickListener(new OnClickListener() {  
  41.               
  42.             @Override  
  43.             public void onClick(View v) {  
  44.                 edit2.setText(read());  
  45.             }  
  46.         });  
  47.     }  
  48.       
  49.       
  50.     private String read() {  
  51.         try {  
  52.             FileInputStream fis = openFileInput(FILE);  
  53.             byte[] buffer = new byte[1024];  
  54.             int hasRead = 0;  
  55.             StringBuilder sb = new StringBuilder("");  
  56.             while ((hasRead = fis.read(buffer)) > 0) {  
  57.                 sb.append(new String(buffer, 0, hasRead));  
  58.             }  
  59.             return sb.toString();  
  60.         } catch (IOException e) {  
  61.             e.printStackTrace();  
  62.         }  
  63.         return null;  
  64.     }  
  65.       
  66.     private void write(String content)  
  67.     {  
  68.         try  
  69.         {  
  70.             // 以追加模式打开文件输出流   
  71.             FileOutputStream fos = openFileOutput(FILE, MODE_APPEND);  
  72.             // 将FileOutputStream包装成PrintStream   
  73.             PrintStream ps = new PrintStream(fos);  
  74.             // 输出文件内容   
  75.             ps.println(content);  
  76.             ps.close();  
  77.         }  
  78.         catch (Exception e)  
  79.         {  
  80.             e.printStackTrace();  
  81.         }  
  82.     }  
  83. }  
  • 1
  • 2
  • 下一页

相关内容