android读写sd卡操作写入数据读取数据示例

复制代码 代码如下:
package com.example.sdcardtest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;

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;
import android.app.Activity;

public class MainActivity extends Activity {
    final String FILE_NAME = "/lxp.bin";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button write = (Button) findViewById(R.id.main_btn1);
        Button read = (Button) findViewById(R.id.main_btn2);
        final EditText edit1 = (EditText) findViewById(R.id.main_edit1);
        final EditText edit2 = (EditText) findViewById(R.id.main_edit2);
        write.setOnClickListener(new OnClickListener() {

@Override
            public void onClick(View v) {
                write(edit1.getText().toString().trim());
                edit1.setText("");
            }
        });
        read.setOnClickListener(new OnClickListener() {

@Override
            public void onClick(View v) {
                edit2.setText(read());
            }
        });
    }
    private void write(String content){
        try {
            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());
                raf.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

private String read(){
        try {
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                //获得SD卡对应的存储目录
                File sdCardDir = Environment.getExternalStorageDirectory();
                //获取指定文件对应的输入流
                FileInputStream fis = new FileInputStream(sdCardDir.getCanonicalPath() + FILE_NAME);
                //将指定输入流包装成BufferReader
                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();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

最后别忘了在AndroidManafest.xml中增加访问读取SD的权限。

时间: 2024-07-29 05:49:13

android读写sd卡操作写入数据读取数据示例的相关文章

android 读写sd卡的权限设置

原文:android 读写sd卡的权限设置在Android中,要模拟SD卡,要首先使用adb的mksdcard命令来建立SD卡的镜像,如何建立,大家上网查一下吧,应该很容易找到,这里不说这个问题.     但是在应用程序执行起来以后,我们可以看到sdcard的执行权限很有问题.懂Linux的人都知道,这样的权限是无法在SD开中写入内容的,也就无法建立目录.Android中对sd卡的读写权限问题     但是,我们在adb shell命令中,依然可以在sdcard中建立目录,写入文件.这倒是也是见

Android实现读写SD卡_Android

SD卡的读写是我们在开发Android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式:    1. 获取SD卡的根目录 复制代码 代码如下: String  sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();    2. 在SD卡上创建文件夹目录 /** * 在SD卡上创建目录 */ public File createDirOnSDCard(String dir) { File dirF

Android数据持久化之读写SD卡中内容的方法详解

本文实例讲述了Android数据持久化之读写SD卡中内容的方法.分享给大家供大家参考,具体如下: 前面文章里讲的那三个方法:openFileOutput .openFileInput 虽然都能通过流对象OutputStream和InputStream可以处理任意文件中的数据,但与 SharedPreferences 一样,只能在手机内存的指定目录下建立文件,因此,在实际的开发使用中有很大的局限性,那么在这一节中,我们来看一个比较高级的方法来实现数据的持久化--读写SD卡上的内容. --读取ass

android 向SD卡写入数据

原文:android 向SD卡写入数据 1.代码: /** * 向sdcard中写入文件 * @param filename 文件名 * @param content 文件内容 */ public void saveToSDCard(String filename,String content) throws Exception{ File file=new File("/mnt/sdcard", filename); OutputStream out=new FileOutputSt

Android java SD卡存储问题

问题描述 Android java SD卡存储问题 本人想完成这样一个程序: 输入一个数据,保存时间和数据到SD卡,然后查询数据时能显示保存数据的时间和数据 怎么破?? 求大神解答 解决方案 可以用文件读写操作完成:在sd卡上建立自己的一个文件或者数据库,然后对改文件或数据库进行读写就可以了. 解决方案二: 你应该是刚刚接触Android可以先看看张泽华老师的视频,里面就有怎么样从SD卡里读写数据.感觉还不错 解决方案三: Android - 文件读写操作 总结 android 读写SD卡文件

Android 获取SD卡路径和判断SD卡是否存在

android获取sd卡路径方法: 不建议直接写死android sd卡的路径.   public String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在 if (sdCardExist) { sdDir = Environment.get

Android 检测SD卡应用

Android 检测SD卡应用 //                                    Environment.MEDIA_MOUNTED // sd卡在手机上正常使用状态  // Environment.MEDIA_UNMOUNTED // 用户手工到手机设置中卸载sd卡之后的状态  // Environment.MEDIA_REMOVED // 用户手动卸载,然后将sd卡从手机取出之后的状态  // Environment.MEDIA_BAD_REMOVAL // 用户未

Android获取SD卡路径及SDCard内存的方法

本文实例讲述了Android获取SD卡路径及SDCard内存的方法.分享给大家供大家参考.具体分析如下: 昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题.较好的方法是通过Environment 来获取路径,最后给出一个例子,教你怎样获取SDCard 的内存,显示出来告诉用

Android获取SD卡上图片和视频的缩略图

  需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 . 如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径. Uri originalUri = MediaStor