android 写入文件到SD卡中去
16lz
2021-01-24
前面写了一篇Android对文件的基本读写操作,只是向手机自身的存储空间写入文件,但是手机自身的存储空间有限,这时就要考虑向SDCard中存入文件,比如视频,音频和大量的图片。在底层代码的实现上两者没有什么区别,不过想要往SDCard中写入和读取文件首选必须在AndroidManifest.xml 注册权限:
?1 2 3 4 | <!-- 加入在SDCard中创建与删除文件的权限 --> < uses -permission android:name = "android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 加入在SDCard中写入数据的权限 --> < uses -permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" /> |
FileActivity.java 程序主要实现类
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | package net.androidla.file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import net.androidla.service.FileService; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class FileActivity extends Activity { private EditText filenameTxt; private EditText fileContentTxt; private TextView result; private Button btnSave; private Button btnShow; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); filenameTxt = (EditText) findViewById(R.id.filenameTxt); fileContentTxt = (EditText) findViewById(R.id.fileContentTxt); btnSave = (Button) findViewById(R.id.btnSave); btnShow = (Button) findViewById(R.id.btnShow); result = (TextView) findViewById(R.id.result); btnSave.setOnClickListener(listener); btnShow.setOnClickListener(listener); } private View.OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { Button button = (Button) v; String filename = filenameTxt.getText().toString(); File file = new File(Environment.getExternalStorageDirectory(), filename); Log.i( "log" , file.getAbsolutePath()); switch (button.getId()) { case R.id.btnSave: if (filename != null && !filename.equals( "" )) { try { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { FileService.save( new FileOutputStream(file), fileContentTxt.getText().toString()); Toast.makeText(FileActivity. this , R.string.success, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(FileActivity. this , "sdcard不存在或有写保护" , Toast.LENGTH_SHORT).show(); } } catch (Exception e) { e.printStackTrace(); } } else { Toast.makeText(FileActivity. this , R.string.fail, Toast.LENGTH_SHORT).show(); } break ; case R.id.btnShow: try { String resultTxt = FileService.read( new FileInputStream(file)); result.setText(resultTxt); } catch (Exception e) { Toast.makeText(FileActivity. this , "读取失败" , Toast.LENGTH_SHORT).show(); e.printStackTrace(); } break ; } } }; } |
更多相关文章
- 如何将打开res raw目录中的数据库文件?
- 将Android移植到FS2410开发板上
- Android(安卓)Bluetooth HID实现详解
- Android(安卓)Studio 开发经验纵览
- JNI之一:基础 && JAVA调用win dll实例
- android manifest 文件Activity配置节中的属性汇总
- android使用opensl es进行简单的音频播放
- Android默认闹钟-铃声-通知提示音修改
- android sdk 编译--如何将源代码加入android.jar,以及make原理 2