SD Card 相关的权限:

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="shortcut.song.com.myapplication.SDCardTestActivity">    <Button        android:id="@+id/btn_read_sdcard"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="read"/>    <Button        android:id="@+id/btn_write_sdcard"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="write"/>    <EditText        android:id="@+id/edit_1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:hint="read"/>    <EditText        android:id="@+id/edit_2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:hint="write"/>LinearLayout>
package shortcut.song.com.myapplication;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.Toast;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.RandomAccessFile;public class SDCardTestActivity extends AppCompatActivity {    private String FILE_NAME = "/sdandroid.bin";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_sdcard_test);        final Button read = (Button)findViewById(R.id.btn_read_sdcard);        final Button write = (Button)findViewById(R.id.btn_write_sdcard);        final EditText edit1 = (EditText)findViewById(R.id.edit_1);        final EditText edit2 = (EditText)findViewById(R.id.edit_2);        read.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //将edit1输入的内容写到文件中                edit2.setText(read());            }        });        write.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                write(edit1.getText().toString());                edit1.setText("");            }        });    }    private String read() {        try {            //如果设置插入了SD卡,并且应用程序具有访问SD卡的权限            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {                //获取SD卡对应的存储目录                File sdCardDir = Environment.getExternalStorageDirectory();                //获取指定文件对应的输入流                FileInputStream fis = new FileInputStream(sdCardDir.getCanonicalPath() + FILE_NAME);                //将指定的输入流包装成BufferedReader                BufferedReader br = new BufferedReader(new InputStreamReader(fis));                StringBuilder sb = new StringBuilder("");                String line = null;                //循环读取文件内容                while ( (line = br.readLine()) != null)                {                    sb.append(line);                }                //关闭资源                br.close();                return sb.toString();            }else{                Toast.makeText(SDCardTestActivity.this, "Not Find SD card.", Toast.LENGTH_LONG).show();            }        } catch (IOException e) {            e.printStackTrace();        }        return null;    }    private void write(String content) {        try {            //如果设置插入了SD卡,并且应用程序具有访问SD卡的权限            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {                //获取SD卡对应的存储目录                File sdCardDir = Environment.getExternalStorageDirectory();                    File targetFile = new File(sdCardDir.getCanonicalPath() + FILE_NAME);                //以指定文件创建RandomAccessFile 对象                RandomAccessFile raf = new RandomAccessFile(targetFile, "rw");                //将文件记录移动到文件最后                raf.seek(targetFile.length());                //输出文件内容                raf.write(content.getBytes());                //关闭RandomAccessFile                raf.close();            }else{                Toast.makeText(SDCardTestActivity.this, "Not Find SD card.", Toast.LENGTH_LONG).show();            }        } catch (IOException e) {            e.printStackTrace();        }    }}

运行效果:

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. android加载.swf flash文件
  4. android 创建快捷方式
  5. Android(安卓)App应用底部导航栏实现的一种方式
  6. android Error inflating class com.google.android.material.ch
  7. Unity3d 调用Android震动
  8. android之File文件简单操作
  9. Android(安卓)文件操作工具类

随机推荐

  1. Android的IPC机制
  2. Android Tabhost中tab添加数字demo
  3. 【android】EditText属性大全
  4. android(Import Android demo to Eclipse)
  5. 随笔:Android不爱C++
  6. [Android引擎]Android游戏框架AndE…
  7. 自定义View之圆角图片
  8. Android系统调用
  9. 在Android中使用ViewPager实现左右滑动页
  10. 安卓布局属性代码中文注解