数据存储_SD卡

实现数据存储在SD卡上

实验效果

   

主要代码

package com.example.savesd;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.RandomAccessFile;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

	private Button btnWrite, btnRead;  
    private EditText edtContent;  
    private TextView tvResult;  
    private static final String FILE_NAME = "test.txt";  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        
        edtContent = (EditText) this.findViewById(R.id.edtContent);  
        tvResult = (TextView) this.findViewById(R.id.tvResult);  
  
        btnRead = (Button) this.findViewById(R.id.btnRead);  
        btnWrite = (Button) this.findViewById(R.id.btnWrite);  
        
        btnWrite.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                System.out.println("往SDCard里写数据");  
                // 先判断是否有SDCard  
                System.out.println("Environment.getExternalStorageState():"  
                        + Environment.getExternalStorageState());  
                System.out.println("Environment.MEDIA_MOUNTED:"  
                        + Environment.MEDIA_MOUNTED);  
                if (Environment.getExternalStorageState().equals(  
                        Environment.MEDIA_MOUNTED)) {  
  
                    String content = edtContent.getText().toString();  
  
                    try {  
  
                        // 获取SDcard路径  
                        File sdCardDir = Environment  
                                .getExternalStorageDirectory();  
  
                        // SDCard目录:/mnt/sdcard  
                        String sdcardPath = sdCardDir.getAbsolutePath();  
                        System.out.println("sdCardDir.getAbsolutePath()"  
                                + sdCardDir.getAbsolutePath());  
  
                        File file = new File(sdCardDir, FILE_NAME);  
                        // File file = new File(sdcardPath  
                        // + File.separator + FILE_NAME);  
                        // 以指定文件创建RandomAccessFile对象  
                        RandomAccessFile raf = new RandomAccessFile(file, "rw");  
                        // 将文件记录指针移动最后  
                        raf.seek(file.length());  
                        // 输出文件内容  
                        raf.write(content.getBytes());  
                        raf.close();  
  
                    } catch (Exception e) {  
                        // TODO: handle exception  
                    }  
                }  
            }  
        });  
        btnRead.setOnClickListener(new View.OnClickListener() {  
  
            @Override  
            public void onClick(View v) {  
  
                if (Environment.getExternalStorageState().equals(  
                        Environment.MEDIA_MOUNTED)) {  
                    // 获取SDcard路径  
  
                    StringBuilder sb = new StringBuilder();  
                    try {  
                        File sdCardDir = Environment  
                                .getExternalStorageDirectory();  
                        File file = new File(sdCardDir, FILE_NAME);  
  
                        InputStream inputStream = new FileInputStream(file);  
                        int len = 0;  
                        byte[] buffer = new byte[1024];  
                        while ((len = inputStream.read(buffer)) != -1) {  
  
                            sb.append(new String(buffer, 0, len));  
                        }  
                        tvResult.setText(sb.toString());  
                        // 关闭流  
                        inputStream.close();  
  
                    } catch (Exception e) {  
                        // TODO Auto-generated catch block  
                        e.printStackTrace();  
                    }  
                }  
  
            }  
        });  
  
    }  
    


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}



猜你喜欢

转载自blog.csdn.net/hantongtonghan/article/details/53057066