Android中对SD卡的读取与写入

本文介绍了一种在安卓设备上实现SD卡读写的简单方法。通过示例代码展示了如何请求必要的权限、检查SD卡状态以及进行文件的写入与读取操作。

对安卓SD卡的读取与写入并不复杂,这里直接上主要的代码:
当然一定要记得在清单文件中设置对读取与写入的权限:

 <!-- 读取 -->
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <!-- 写入权限 -->
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <!-- 创建与删除权限 -->
 <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

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

public class WriteReadSD extends AppCompatActivity {

    private Button write,read;
    private EditText editText;
    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.write_read_sd);
        write = (Button)findViewById(R.id.write);
        read = (Button)findViewById(R.id.read);
        editText = (EditText)findViewById(R.id.edit);
        textView = (TextView)findViewById(R.id.show);
        write.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isSD()){
                    String str = editText.getText().toString();
                    File file = Environment.getExternalStorageDirectory();
                    try {
                        File file1 = new File(file.getCanonicalPath()+"/user.txt");
                        FileOutputStream fop = new FileOutputStream(file1);
                        fop.write(str.getBytes());
                        fop.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        read.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isSD()){
                    StringBuffer stringBuffer = new StringBuffer();
                    try {
                        File file = new File(Environment.getExternalStorageDirectory()
                        .getCanonicalPath()+"/user.txt");
                        if (file.exists()){
                            // 打开文件输入流
                            FileInputStream fip = new FileInputStream(file);
                            BufferedReader reader = new BufferedReader(new InputStreamReader(fip));
                            String str = "";
                            while ((str=reader.readLine())!=null){
                                stringBuffer.append(str);
                            }
                            reader.close();
                            textView.setText(stringBuffer);

                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
    }

    //判断SD卡是否准备
    private boolean isSD(){
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)){
            return true;
        }
        return false;
    }


}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值