Android中SD卡的读写以及SD卡状态的获取

本文介绍了一个简单的Android应用程序,用于演示如何在Android设备上进行SD卡文件的读写操作,并检查SD卡的状态。此外,还展示了如何获取SD卡及缓存内存的剩余空间。
package com.bawei.sdrw;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;


import android.os.Bundle;
import android.os.Environment;
import android.provider.ContactsContract.QuickContact;
import android.app.Activity;
import android.app.DownloadManager.Query;
import android.text.format.Formatter;
import android.text.style.QuoteSpan;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.webkit.WebStorage.QuotaUpdater;
import android.widget.QuickContactBadge;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {
TextView tv1;
TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏actionBar   位置固定
requestWindowFeature(Window.FEATURE_NO_TITLE);


setContentView(R.layout.activity_main);


tv1=(TextView) findViewById(R.id.tv1);
tv2=(TextView) findViewById(R.id.tv2);
}
 //将文件写入到指定位置  例  SD卡  data下
public void write(View view){
// 方式一   创建文件   参数为   SD卡路径与文件名   方式一
File file=new File("/mnt/sdcard/xx.txt");


//  方式二   getFilesDir() data/data/包名/files/存的你自己写的文件        方式二
//getCacheDir() data/data/包名/cache/存的你自己写的文件
//如果你是重要的文件的话应该保存在getFilesDir(),  清除缓存时   cacheDir   会被清除

//File file=new File(getCacheDir(), "xx.txt");
//File file=new File(getFilesDir(), "a.txt");
//Environment.getExternalStorageDirectory();    相当于于/mnt/sdcard  相当于SD卡的路径
try { 
//创建字节输出流   将文件写入  指定位置
FileOutputStream fos=new FileOutputStream(file);

//写入数据  
fos.write("hello   word!!".getBytes());

//关闭资源
fos.close();
  
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//写入是SD卡的状态
public void state1(View view){
//获取SD卡的状态
String state=Environment.getExternalStorageState();
//判断SD卡的状态   正常  和  移除
if(state.equals(Environment.MEDIA_MOUNTED)){
File file=new File(Environment.getExternalStorageDirectory(), "jj.txt");
try {
FileOutputStream fos=new FileOutputStream(file);
fos.write("我是一个好人!!".getBytes());
fos.close();
} catch (Exception e) {

e.printStackTrace();
}

}
else if(state.equals(Environment.MEDIA_UNMOUNTED)){
Toast.makeText(this,"SD卡被移除", 0).show();
}
}
//读取是SD卡的状态
    public void state2(View view){
   
    //获取SD卡状态
      String state = Environment.getExternalStorageState();
//正常时
if(state.equals(Environment.MEDIA_MOUNTED)){
//创建路径表示  指定路径下的文件
File file = new java.io.File(Environment.getExternalStorageDirectory(), "aaa.txt");
try {
//读取  输入流
FileInputStream fis = new FileInputStream(file);
//按行读取的流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//读取的数据
String readLine = br.readLine();
//展示
Toast.makeText(this, readLine, 0).show();

} catch (Exception e) {
e.printStackTrace();
}
}//移除时
else if(state.equals(Environment.MEDIA_UNMOUNTED)){
Toast.makeText(this,"SD卡被移除", 0).show();
}
}
//SD卡和缓冲运行内存的剩余
    public void sheng(View view){
    //获取SD卡的路径与缓存内存的路径
    File file_sd=Environment.getExternalStorageDirectory();
    File file_mem=Environment.getDataDirectory();
   
    //得到内存的总空间      这些值是long型的
    long sd_space=file_sd.getTotalSpace();
    long mem_space=file_mem.getTotalSpace();
   
    //将long型的值 转换为mb
    String sd_size=Formatter.formatFileSize(this, sd_space);
    String mem_size=Formatter.formatFileSize(this, mem_space);
    //将得到的总空间的值设置文本
    tv1.setText("SD卡的内存总空间:"+sd_size);
    tv2.setText("缓存内存的总空间:"+mem_size);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓 5

有啥不懂的可以单聊解答....

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值