android_sdcard读写(一)

      现在的android手机其实就是一个小小的掌上电脑,平时电脑有的硬件它估计也有了。这次本人研究下了其中充当手机硬盘的角色,就是sdcard。这是一个保存应用程序的好地方。

      老规矩,上代码,学习代码才是进步的王道,妈的~~~

     

package cn.com.sxp;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;

import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class AccessSDActivity extends Activity {
private final static String TAG = AccessSDActivity.class.getSimpleName();

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//
Log.d("sxp","挖槽~~~屁的sd卡啊");
AccessSDActivity.this.finish();
}

// 存在sd卡,那就获得sd卡的路径吧
File sdPath = Environment.getExternalStorageDirectory();
Log.d("sxp","getExternalStorageDirectory is: " + sdPath);
// Retrieve overall information about the space on a filesystem. This is a Wrapper for Unix statfs().
StatFs statfs = new StatFs(sdPath.getPath());
Log.d("sxp","the space on sdCard is: " + statfs.toString());

// 获取sd卡的块大小
long blockSize = statfs.getBlockSize();
Log.d("sxp","blocksize is: " + blockSize);

// 获取sd卡的块个数
long blockCount = statfs.getBlockCount();
Log.d("sxp","blockCount is: " + blockCount);

// 空闲块个数
long idleBlockCount = statfs.getAvailableBlocks();
Log.d("sxp","idle block count is: " + idleBlockCount);
}
}

赶快看看DDMS打印的日志

原来我的手机sd卡的挂载路径是/mnt/sdcard,牛逼~~

block大小是512字节一块,很标准;

一共有22146个块,瓦擦,就知道sd的总大小了;

其中只有4个块是呗使用的,使用率太低了。

原文地址:https://www.cnblogs.com/itblog/p/7236635.html