对sdcard的一些操作
来源:互联网 发布:Linux改变所有文件权限 编辑:程序博客网 时间:2024/05/01 03:04
获取容量大小以及将文件保存在sdcard中。
获取手机内存的大小:
import java.io.File;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.os.Environment;import android.os.StatFs;import android.text.format.Formatter;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取SD卡File path = Environment.getExternalStorageDirectory();//获取手机内存File data = Environment.getDataDirectory();long [] sd = getInfo(path);long [] phone = getInfo(data);TextView t = (TextView) findViewById(R.id.total);TextView a = (TextView) findViewById(R.id.avilable);t.setText(formatString(sd[0]));a.setText(formatString(sd[1]));t = (TextView) findViewById(R.id.phone_total);a = (TextView) findViewById(R.id.phone_avilable);t.setText(formatString(phone[0]));a.setText(formatString(phone[1]));t = (TextView) findViewById(R.id.total_total);a = (TextView) findViewById(R.id.totla_avilable);t.setText(formatString(sd[0]+phone[0]));a.setText(formatString(sd[1]+phone[1]));}@Overridepublic 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;}@SuppressWarnings("deprecation")private long[] getInfo(File file) {// 关于SD卡的一些信息的对象StatFs stat = new StatFs(file.getPath());// 获取每个区块的大小long blockSize = stat.getBlockSize();// 获取区块总数long count = stat.getBlockCount();// 获取可用区块数量long available = stat.getAvailableBlocks();return new long[]{blockSize * count,blockSize * available};}private String formatString(long num) {return Formatter.formatFileSize(this, num);}}
向sdcard中写入数据
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;import android.content.Context;import android.os.Environment;import android.widget.Toast;public class LoginService {/** * 保存用户名和密码 * @param context 上下文 * @param unserName 用户名 * @param password 密码 * @return true 保存成功 false 保存失败 */public static boolean saveUserInfo(Context context ,String userName ,String password){//检查SD卡的状态String state = Environment.getExternalStorageState();if (!Environment.MEDIA_MOUNTED.equals(state)) {Toast.makeText(context, "SD卡不可用,请检查SD卡状态", Toast.LENGTH_LONG).show();return false;}//返回文件目录File file = new File(Environment.getExternalStorageDirectory(),"info.txt");FileOutputStream fos = null;try {fos = new FileOutputStream(file);fos.write((userName+"##"+password).getBytes());fos.close();return true;} catch (Exception e) {e.printStackTrace();return false;}}/** * 获取保存的数据 * @param ctx * @return */public static Map<String,String> getUserInfo(Context ctx){File file = new File(Environment.getExternalStorageDirectory(),"info.txt");FileInputStream fis = null;;try {fis = new FileInputStream(file);BufferedReader br = new BufferedReader(new InputStreamReader(fis));String str = br.readLine();String [] info = str.split("##");Map<String,String> map = new HashMap<String,String>();map.put("userName", info[0]);map.put("password", info[1]);return map;} catch (Exception e) {e.printStackTrace();return null;}}}
注意:
1、向sdcard中写入数据一定要在manifest中的Permission里给予相应权限。因为4.0一下版本默认有读取权限,但无写入权限。4.0以上如果用户设置的话甚至连读取权限都没有。
2、在eclipse中DDMS里查看sdcard中的内容,视频中直接找到sdcard即可,但我的是需要在mnt/sdcard中才能看。不知道是什么问题。
0 0
- 对sdcard的一些操作
- 对SDCard卡的简单写入操作
- Android对sdcard操作
- <转载>Android 对sdcard操作
- android JNI C代码对sdcard中文件的操作
- 对Mysq的一些操作
- 对文件的一些操作
- 对地址的一些操作。
- 对地址的一些操作
- 对datetable的一些操作
- 对数组的一些操作
- 对表的一些操作
- Android中Sdcard的操作
- 解决Android在对Sdcard进行文件的读写操作的时候报错FileNotFoundException
- Android 对 SDCARD 卡 上的sqlite3 db 文件进行操作总结
- sdcard操作
- SdCard操作
- 关于Andiroid SDcard 自己的一些理解
- zb的生日
- Linux netfilter 学习笔记 之九 ip层netfilter的连接跟踪模块代码分析
- day104(6.24)
- mysql
- 黑马程序员 java高新技术 类加载器
- 对sdcard的一些操作
- 【Espruino】NO.14 温湿度传感器DHT11
- Block(1)
- 高校网站疏漏,安全问题堪忧
- <算法复习>排序之一---冒泡排序
- html enctype的 MIME 类型
- 使用Spring Mvc 转发 带着模板 父页面 之解决方法 decorators.xml
- MSYS&MINGW环境中编译mediastream2和ortp
- 【扩展KMP】 HDOJ 4300 Clairewd’s message