保存文件到SD卡以及分析setting源代码获取SD卡大小

保存文件到SD卡

public static boolean saveInfo(Context context, String username,

String password) {

try {

if ( Environment.MEDIA_MOUNTED.equals( Environment

.getExternalStorageState())) {

File file = new File( Environment.getExternalStorageDirectory(), "info.txt");

FileOutputStream fos = new FileOutputStream(file);

fos.write((username + "=" + password).getBytes());

fos.flush();

fos.close();

return true;

} else {

Toast.makeText(context, "cdcard被卸载", 0).show();

return false;

}

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

public static HashMap<String, String> getInfo(Context context) {

File file = new File(Environment.getExternalStorageDirectory(), "info.txt");

try {

FileInputStream fis = new FileInputStream(file);

BufferedReader br = new BufferedReader(new InputStreamReader(fis));

String[] result = br.readLine().split("=");

HashMap<String, String> map = new HashMap<String, String>();

map.put("username", result[0]);

map.put("password", result[1]);

br.close();

return map;

} catch (Exception e) {

Toast.makeText(context, "无法读取用户信息", 0).show();

}

return null;

}

授权

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

分析setting源代码获取SD卡大小

public String getSdcardInfo() {

File path = Environment.getExternalStorageDirectory();

StatFs stat = new StatFs(path.getPath());

long blockSize = stat.getBlockSize();

long totalBlocks = stat.getBlockCount();

long availableBlocks = stat.getAvailableBlocks();

long totalSize = blockSize * totalBlocks;

long availSize = blockSize * availableBlocks;

String totalStr = Formatter.formatFileSize(this, totalSize);

String availStr = Formatter.formatFileSize(this, availSize);

return "cdcard总内存:" + totalStr + "\n" + "可用内存:" + availStr;

}

public String getROMInfo() {

File path = Environment.getDataDirectory();

StatFs stat = new StatFs(path.getPath());

long blockSize = stat.getBlockSize();

long totalBlocks = stat.getBlockCount();

long availableBlocks = stat.getAvailableBlocks();

long totalSize = blockSize * totalBlocks;

long availSize = blockSize * availableBlocks;

String totalStr = Formatter.formatFileSize(this, totalSize);

String availStr = Formatter.formatFileSize(this, availSize);

return "手机总内存:" + totalStr + "\n" + "可用内存:" + availStr;

}

原文地址:https://www.cnblogs.com/freenovo/p/4469839.html