android 64 sd卡读写的操作

package com.itheima.writesd;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Toast;

/**
 * 写sd卡一定记得添加权限
 */
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /**
     * 模拟向sd卡写一个视频文件.
     */
    public void click(View view) {
        // 检查的sd卡的状态是否被拔出或者是不可用
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            File sdFile = Environment.getExternalStorageDirectory();// 外部存储空间
            long sdsize = sdFile.getFreeSpace();
            if (sdsize >5* 1024 * 1024) {
                File file = new File(Environment.getExternalStorageDirectory(),//根目录,mnt/sdcard/hlw.3gp
                        System.currentTimeMillis()+"hlw.3gp");//空文件
                try {
                    FileOutputStream fos = new FileOutputStream(file);//文件输出流来写文件
                    byte[] buffer = new byte[1024];//1K,空数据
                    for (int i = 0; i < 5*1024; i++) {//hlw.3gp为5M的空数据文件
                        fos.write(buffer);
                    }
                    fos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }else{
                Toast.makeText(this, "sd卡空间不足", 0).show();
            }
        } else {
            Toast.makeText(this, "sd卡被拔出或者是不可用", 0).show();
        }
    }
}

清单文件:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

内部存储目录:

/data/data/包名(应用程序的名字)/files
/data/data/包名(应用程序的名字)/cache

外部存储目录(sd卡):
mnt/sdcard/
package com.itheima.haker;

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 android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void click(View view){
        try {
            File file = new File("/data/data/com.itheima.createfile/files/haha.txt");//内部存储目录
            FileInputStream fis = new FileInputStream(file);//文件输入流
            BufferedReader br = new BufferedReader(new InputStreamReader(fis));//输入流进行包装
            String line = br.readLine();//读取第一行
            Toast.makeText(this, line, 0).show();
        } catch (Exception e) {
            Toast.makeText(this, "读取失败", 0).show();//文件在手机内部存储空间默认是私有的,别的应用程序是不能访问的,也可以改为公有。
            e.printStackTrace();
        }
    }

}

 
时间: 2024-12-25 18:33:01

android 64 sd卡读写的操作的相关文章

Android手机内存,SD卡读写

在手机上有两个存储位置 1 手机内部存储 2 SD卡 文件操作模式: 是否允许外部访问? 文件以覆盖/追加方式写? 手机内存读写 //保存文件到手机内存 public void save(String fileName,String content) throws IOException{ FileOutputStream fos = context.openFileOutput("a.txt", Context.MODE_PRIVATE); fos.write(content.get

Android中向SD卡读写数据,读SD卡和手机内存

package com.example.sdoperation; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import android.support.v7.app.Actio

Android Rom分区 与 SD卡读写

1.Rom分区 在Android中,对数据的保护是很严密的.除了放在SD卡中的数据,一个应用所拥有的数据库.文件等内容都是不允许其他应用直接访问的,这一部分数据都是在/data/data里面. 这里所说的SD卡是逻辑上的SD卡,比如我现在用的galaxy s4 的Rom是16g,Android系统会把这16g分成两个部分,一个是系统和应用程序数据区,另一个就是虚拟的SD卡,可以称它为内置SD卡. 我们平时外插进手机的是TF卡,简称Micro SD卡,具体的可以参考百度. 三星手机默认的内置SD卡

android关于SD卡、存储的各种操作

getExternalFilesDir getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath()返回的是图片存放的标准目录,应用被卸载时这个目录也会被删除.参数还有:public static String DIRECTORY_ALARMS系统提醒铃声存放的标准目录.public static String DIRECTORY_DCIM 相机拍摄照片和视频的标准目录.public static String DIR

第36章 SDIO—SD卡读写测试

第36章     SDIO-SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>以及SD简易规格文件<Physical Layer Simplified Specificatio

Eclipse中查看Android模拟器SD卡目录

有时候用到Android模拟器来模拟SD卡相关操作,在Eclipse中可以直接查看SD卡目录: 首先,新建模拟器的时候要创建SD卡,存储的大小根据需要创建: 启动模拟器,在Eclipse中打开视图窗口:Window--Show View--File Explorer: 可以看到下面有mnt目录,mnt--sdcard 就是SD卡的目录, 也就是代码中 Environment.getExternalStorageDirectory()  的目录: 这样就可以很直观的看到代码对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.getEx

单片机SD 卡读写

1.迄今为止看到的最详细的关于SD卡SPI mode的分析和代码 http://elm-chan.org/docs/mmc/mmc_e.html 2.转载http://blog.csdn.net/ming1006/article/details/7281597 现在我们手机的内存卡多为Micro SD卡,又叫TF卡,所以Micro SD卡比SD卡常见.自己曾经也想写写SD卡的读取程序,但又不想特地再去买个SD卡,这时想起手机内存卡不是和SD卡很像吗?在网上查了以后发现SD卡和Micro SD卡其

android 往sd卡中写入文件

在调用前需要判断是否有写入权限 Environment类提供了比较丰富的方法 static File getDataDirectory() 获得android data的目录. static File getDownloadCacheDirectory() 获得下载缓存目录. static File getExternalStorageDirectory() 或者外部存储媒体目录. static File getExternalStoragePublicDirectory(String type