读写SD卡上的文件
来源:互联网 发布:android清空缓存数据 编辑:程序博客网 时间:2024/06/05 03:43
布局界面为【输入框】、【显示框】、【数据写入按钮】和【数据输出按钮】
为了读写SD卡上的数据,必须在应用程序的清单文件中添加读写SD卡的权限
在SD卡中创建与删除文件权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
向SD卡写入数据的权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
程序代码如下:
package com.twac.sdcardtest;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.RandomAccessFile;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {private Button btn_write;private Button btn_read;private EditText edt_write;private EditText edt_read;private final String FILE_NAME = "/crazyit.bin";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_write = (Button) findViewById(R.id.btn_write);btn_read = (Button) findViewById(R.id.btn_read);edt_write = (EditText) findViewById(R.id.edt_write);edt_read = (EditText) findViewById(R.id.edt_read);btn_write.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// 将edt_write的内容写入文件中write(edt_write.getText().toString());edt_write.setText("");}});btn_read.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {edt_read.setText(read());}});}private void write(String content) {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 获得SD卡的目录File sdCardDir = Environment.getExternalStorageDirectory();try {File targetFile = new File(sdCardDir.getCanonicalPath()+ FILE_NAME);// 以指定文件创建RandomAccessFile对象RandomAccessFile raf = new RandomAccessFile(targetFile, "rw");// 将文件记录指针移动到最后raf.seek(targetFile.length());// 输出文件内容raf.write(content.getBytes());// 关闭RandomAccessFileraf.close();} catch (IOException e) {e.printStackTrace();}}}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);// 将指定输入流包装成BufferedReaderBufferedReader 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();}} catch (Exception e) {e.printStackTrace();}return null;}}
0 0
- 读写SD卡上的文件
- 读写SD卡上的文件
- 读写SD卡上的文件
- 读写SD卡上的文件
- android读写SD卡上的文件
- 读写SD卡上的文件
- 读写SD卡上的文件
- SD卡上读写文件
- 读写sd卡的文件
- Android读写SD卡上的数据
- SD卡读写文件
- 读写SD卡文件
- sd卡读写文件
- SD卡文件读写
- Android的SD卡文件读写
- Android的SD卡文件读写
- Android 读写SD卡的文件
- Android的SD卡文件读写操作
- 如何使用编曲软件钢琴卷轴中的常用工具
- linux下如何使用sftp命令
- bootload
- JavaScript创建对象(摘录)
- yum 升级mysql5.1.73到5.5版本
- 读写SD卡上的文件
- 第四十五篇:USB Type-C Spec知识点摘要
- Decode string----字符串解码问题
- FFmpeg学习3:播放音频
- Android Intent 教程
- 数据库快照了解
- [干货]资料链接
- C++和Matlab最常用的编程技能,实现复杂算法的基础
- iOS中的几种定时器