package com.example.sdoperation;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.text.format.Formatter;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.util.StateSet;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;public classMainActivity extends ActionBarActivity implements OnClickListener{privateButton btnSaveSD;privateButton btnReadSD;privateButton btnGetSD;privateButton btnGetPhone;privateTextView tvMemory;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//获得组件
btnGetSD =(Button) findViewById(R.id.btn_get);
btnSaveSD=(Button)findViewById(R.id.btn_saveSD);
tvMemory=(TextView) findViewById(R.id.tv_memoray);
btnReadSD=(Button)findViewById(R.id.btn_readSD);
btnGetPhone=(Button)findViewById(R.id.btn_readPhone);//添加点击事件
btnGetSD.setOnClickListener(this);
btnSaveSD.setOnClickListener(this);
btnReadSD.setOnClickListener(this);
btnGetPhone.setOnClickListener(this);
}
@Overridepublic voidonClick(View v) {switch(v.getId()) {caseR.id.btn_saveSD:
saveFile2Sd();break;caseR.id.btn_readSD:
readFile2Sd();break;caseR.id.btn_get:
getSDDetail();break;caseR.id.btn_readPhone:
getPhoneDetail();break;default:break;
}
}/**
* 读手机内存*/
private voidgetPhoneDetail() {
File path=Environment.getDataDirectory();
StatFs stat= newStatFs(path.getPath());long blockSize =stat.getBlockSize();long blockCount =stat.getBlockCount();long avilableBlocks =stat.getAvailableBlocks();long totalSize = blockSize*blockCount;long avilableSize = blockSize*avilableBlocks;
String totalSizeStr= Formatter.formatFileSize(this, totalSize);
String alilableSizeStr= Formatter.formatFileSize(this, avilableSize);
tvMemory.setText("总内存:"+totalSizeStr + "可用内存:" +alilableSizeStr);
}/**
* 读SD卡内存*/
private voidgetSDDetail() {
File path=Environment.getExternalStorageDirectory();
StatFs stat= newStatFs(path.getPath());long blockSize =stat.getBlockSize();long blockCount =stat.getBlockCount();long avilableBlocks =stat.getAvailableBlocks();long totalSize = blockSize*blockCount;long avilableSize = blockSize*avilableBlocks;
String totalSizeStr= Formatter.formatFileSize(this, totalSize);
String alilableSizeStr= Formatter.formatFileSize(this, avilableSize);
tvMemory.setText("总内存:"+totalSizeStr + "可用内存:" +alilableSizeStr);
}/**
* 向SD卡写数据*/
private voidsaveFile2Sd() {//获得SD卡的状态
String sdState =Environment.getExternalStorageState();if(sdState.equals(Environment.MEDIA_MOUNTED)) {
File file= new File(Environment.getExternalStorageDirectory(), "info.txt");
FileOutputStream fos;try{
fos= newFileOutputStream(file);
fos.write("xxx".getBytes());
fos.close();
Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}else{
Toast.makeText(this, "SD卡不存在", Toast.LENGTH_SHORT).show();
}
}/**
* 从SD卡读数据*/
private voidreadFile2Sd() {//获得SD卡的状态
String sdState =Environment.getExternalStorageState();if(sdState.equals(Environment.MEDIA_MOUNTED)) {
File file= new File(Environment.getExternalStorageDirectory(), "info.txt");
BufferedReader br;try{
br= new BufferedReader(newFileReader(file));
String content=br.readLine();
tvMemory.setText(content);
br.close();
Toast.makeText(this, "读取成功", Toast.LENGTH_SHORT).show();
}catch(Exception e) {
Toast.makeText(this, "SD卡不存在", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(this, "SD卡不存在", Toast.LENGTH_SHORT).show();
}
}
}