SD卡寫入和讀取

import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.jredu.study.R;
import com.jredu.study.entity.SdCard;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class SdCardActivity extends AppCompatActivity {
    Button writeBtn;
    Button readBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sd_card);
        writeBtn = (Button) findViewById(R.id.writeSd);
        writeBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                WriteToSD();
            }
        });
        readBtn = (Button) findViewById(R.id.readSd);
        readBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ReadFromSD();
            }
        });
    }
    //向SD卡寫入
    public void WriteToSD(){
        String state = Environment.getExternalStorageState();//獲取外部存儲狀態
        ObjectOutputStream oos = null;
        if (state.equals(Environment.MEDIA_MOUNTED)) {//外部存儲正常
            File root = Environment.getExternalStorageDirectory();//獲取外部存儲路徑
            File TargetDir = new File(root,super.getPackageName());//在SD卡下創建新的文件夾
            if (!TargetDir.exists()) {
                TargetDir.mkdir();
            }
            try {
                oos = new ObjectOutputStream(new FileOutputStream(new File(TargetDir,"cardSD.TXT")));
                SdCard sdCard = new SdCard("青島","青島是一個好地方!");
                oos.writeObject(sdCard);
                Toast.makeText(getApplication(),"寫入成功",Toast.LENGTH_SHORT).show();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    oos.flush();
                    oos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }

        } else {
            Toast.makeText(getApplication(),"沒有找到SD卡",Toast.LENGTH_SHORT).show();
        }

    }
    //讀取SD卡內容
    public void ReadFromSD(){
        String state = Environment.getExternalStorageState();//獲取外部存儲狀態
        if (state.equals(Environment.MEDIA_MOUNTED)) {
            File root = Environment.getExternalStorageDirectory();
            File TargetDir = new File(root,super.getPackageName());
            ObjectInputStream ois = null;
            if (TargetDir.exists()) {
                try {
                    ois = new ObjectInputStream(new FileInputStream(new File(TargetDir+"/cardSD.TXT")));
                    SdCard sdCard = (SdCard) ois.readObject();
                    Toast.makeText(SdCardActivity.this,sdCard.getTitle()+" "+sdCard.getContent(),Toast.LENGTH_SHORT).show();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        ois.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        } else {
            Toast.makeText(getApplication(),"沒有找到SD卡",Toast.LENGTH_SHORT).show();
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章