Android中向SD卡读写数据,读SD卡和手机内存
2014-07-19 15:15
417 查看
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 class MainActivity extends ActionBarActivity implements OnClickListener{ private Button btnSaveSD; private Button btnReadSD; private Button btnGetSD; private Button btnGetPhone; private TextView tvMemory; @Override protected void onCreate(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); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_saveSD: saveFile2Sd(); break; case R.id.btn_readSD: readFile2Sd(); break; case R.id.btn_get: getSDDetail(); break; case R.id.btn_readPhone: getPhoneDetail(); break; default: break; } } /** * 读手机内存 */ private void getPhoneDetail() { File path = Environment.getDataDirectory(); StatFs stat = new StatFs(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 void getSDDetail() { File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(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 void saveFile2Sd() { //获得SD卡的状态 String sdState = Environment.getExternalStorageState(); if (sdState.equals(Environment.MEDIA_MOUNTED)) { File file = new File(Environment.getExternalStorageDirectory(), "info.txt"); FileOutputStream fos; try { fos = new FileOutputStream(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 void readFile2Sd() { //获得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(new FileReader(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(); } } }
相关文章推荐
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- Android手机内存,SD卡读写
- android保存数据到手机内存以及SD卡
- Android手机数据读写方法(内部存储、SD卡,网络加载,包内文件读取)
- android 数据存储<一>----android短信发送器之文件的读写(手机+SD卡)
- Android核心基础——S02E06_保存数据到手机内存
- Android下SD卡文件操作与数据读写
- android开发学习(二)——保存文件到手机内存和SD卡,文件访问权限,获取内存大小
- 关于Android手机内存ROM、RAM还有SD卡的重要解释
- Android实例demo1之查看手机内存状态、时间数据大小格式化
- Android获得手机内存和SD卡空间大小
- 初学Android,数据存储之读写SD卡文件(四十三)
- Android获取手机内存和sd卡相关信息
- [教程指导] 扫盲:关于Android手机内存ROM、RAM还有SD卡的解释
- android 将应用程序从手机内存移动到SD卡
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- 扫盲:关于Android手机内存ROM、RAM还有SD卡的解释
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- android 手机SD卡读写操作(以txt文本为例)实现步骤【转】
- Android - API - android.os.StatFs (获取手机和SD卡内存使用情况)