Android SDcard 文件读写,RandomAccessFile操作_第1张图片

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();        }    }}

运行效果:

Android SDcard 文件读写,RandomAccessFile操作_第2张图片

更多相关文章

  1. android加载.swf flash文件
  2. Android 文件操作工具类
  3. android之File文件简单操作
  4. Android 通过HTTP POST 上传图片文件
  5. 获得root权限
  6. Android studio 3.0和unity交互 Manifest文件修改后正确的内容
  7. 关于Android WebView上传文件的解决方案
  8. android httpclient 上传文件

随机推荐

  1. android:padding和android:margin的区别
  2. 关于Android菜单上的记录
  3. Android(安卓)创建服务器 NanoHttpd
  4. 开放平台的Android(安卓)SDK
  5. android仿今日头条App、多种漂亮加载效果
  6. android Switch控件
  7. Android真响应式架构——数据流动性
  8. 【Android(安卓)开发】:通知之Notificatio
  9. Android(安卓)上 Https 双向通信— 深入
  10. android 使用Intent传递数据之全局变量传