Android(安卓)SDcard 文件读写,RandomAccessFile操作
16lz
2021-12-04
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(); } }}
运行效果:
更多相关文章
- NPM 和webpack 的基础使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- android加载.swf flash文件
- android 创建快捷方式
- Android(安卓)App应用底部导航栏实现的一种方式
- android Error inflating class com.google.android.material.ch
- Unity3d 调用Android震动
- android之File文件简单操作
- Android(安卓)文件操作工具类