`
天天向上1989
  • 浏览: 418304 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

【转】Android--将数据保存到SDCard中

阅读更多

【转自】http://tdq222.iteye.com/blog/701962

 

前言:
使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存放在SDCard。 SDCard是干什么的?你可以把它看作是移动硬盘或U盘。

在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件)。创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下:
在Dos窗口中进入android SDK安装路径的tools目录,输入以下命令创建一张容量为2G的SDCard,文件后缀可以随便取,建议使用.img:
mksdcard 2048M D:\AndroidTool\sdcard.img

1.在AndroidManifest.xml中加入访问SDCard的权限如下:   
    <!-- 在SDCard中创建与删除文件权限 -->   
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>   
    <!-- 往SDCard写入数据权限 -->   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   
  
2.  要往SDCard存放文件,程序必须先判断手机是否装有SDCard,并且可以进行读写。   
    注意:访问SDCard必须在AndroidManifest.xml中加入访问SDCard的权限   
               
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){   
                File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录,2.2的时候为:/mnt/sdcart  2.1的时候为:/sdcard,所以使用静态方法得到路径会好一点。   
                File saveFile = new File(sdCardDir, "abc.txt");   
                FileOutputStream outStream = new FileOutputStream(saveFile);   
                outStream.write("你好".getBytes());   
                outStream.close();   
            }   
               
            /**  
                Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。  
                Environment.getExternalStorageDirectory()方法用于获取SDCard的目录,当然要获取SDCard的目录,你也可以这样写:  
                File sdCardDir = new File("/sdcard"); //获取SDCard目录  
                File saveFile = new File(sdCardDir, "abc.txt");   
                //上面两句代码可以合成一句: File saveFile = new File("/sdcard/abc.txt");  
                FileOutputStream outStream = new FileOutputStream(saveFile);  
                outStream.write("你好test".getBytes());  
                outStream.close();  
            */  
  
***************************************重点:在保存之前需要判断 SDCard 是否存在,并且是否具有可写权限:      
                    if(Environment.MEDIA_MOUNTED.endsWith(Environment.getExternalStorageState())) {   
                        ....   
                    }   
                    Environment.MEDIA_MOUNTED : 存在SDCard,并具有可读可写权限   

 

分享到:
评论

相关推荐

    安卓SD卡文件管理更新信息相关-无需权限将文件保存到sdcard或应用缓存文件中.rar

    标题"安卓SD卡文件管理更新信息相关-无需权限将文件保存到sdcard或应用缓存文件中.rar"表明这是一个关于如何在不获取额外权限的情况下,将文件保存到SD卡或应用缓存文件夹的教程或代码示例集合。 首先,我们来了解...

    Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库

    本篇将详细讲解如何在Android应用中使用SQLite存储数据以及如何在SDCard(外部存储)上创建数据库。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过实现`SQLiteOpenHelper`的子类来完成。`...

    Android实现内存中数据保存到sdcard的方法

    在Android应用开发中,将内存中的数据保存到外部存储(如SDcard)是常见的需求,尤其是在需要持久化数据或创建用户可访问的文件时。本文将深入探讨如何使用Android的文件读写和I/O操作来实现这一功能。 首先,...

    Android数据存储之Sdcard

    在Android系统中,数据存储是应用开发的重要环节,它涉及到用户数据的持久化,以便在应用关闭或设备重启后还能保持信息。Sdcard(Secure Digital Card)是Android设备常用的外部存储器,用于存放大量的非敏感数据,...

    Android数据存储(内置sdcard1)

    在描述中提及的“Android数据存储(内置sdcard)案例1”,可能是一个实际的代码示例,展示了如何在内部存储中创建和读取文件。通常,我们可以使用`getFilesDir()`或`getCacheDir()`方法获取内部存储的文件路径,然后...

    Android数据存入SDCard中

    总之,Android应用可以通过适当地请求权限和使用相应的API,将用户在界面上输入的文字数据安全地存入SDCard。在实际开发中,还需要考虑数据的备份、恢复、权限管理以及不同Android版本的兼容性,以提供稳定可靠的...

    Android写入SDCard

    内部存储通常是将数据保存在应用自身的私有目录下,安全性较高但存储空间有限;而外部存储则可以利用SDCard等扩展存储设备,存储空间相对较大,适合于存储较大的文件,如图片、音频、视频等多媒体文件。 #### 二、...

    Android 平台上SDCard的自动mount的解决方法

    例如,在命令行中使用`dd`命令写入数据到SDCard并读取出来验证。 #### 取消过时的sysfs布局创建 接下来,需要取消过时的sysfs布局创建,这有助于避免因使用旧版本工具而导致的问题。具体操作步骤如下: 1. 进入...

    Android实现图片下载并保存SD卡

    在Android应用开发中,图片的下载与保存是一个常见的需求,特别是在构建涉及用户交互、网络数据获取的App时。本项目专注于实现从网络请求图片并将其保存到设备的外部存储(通常称为SD卡),同时在应用界面中展示这些...

    android崩溃日志保存SDCARD-本地阅读-并发送email

    本教程将介绍如何在Android应用中实现崩溃日志的自动保存到SD卡,本地阅读以及通过电子邮件发送。这有助于开发者在无法直接访问设备的情况下,远程获取到错误信息。 首先,我们需要在应用发生异常时捕获崩溃日志。...

    android 下载图片到本地Sdcard

    在上面的代码中,`saveInputStreamToFile()`函数用于将输入流数据保存到本地文件: ```java private static boolean saveInputStreamToFile(InputStream inputStream, String filePath) { try { File file = new ...

    Android:实现手机拍照并保存照片

    在Android平台上,实现手机拍照并保存照片涉及到一系列的步骤和技术,包括权限管理、启动相机服务、处理相机回调、保存图片到SD卡等。下面将详细解释这些知识点。 首先,我们需要在`AndroidManifest.xml`文件中添加...

    Android保存文件到SD卡

    在Android系统中,将文件保存到SD卡是应用程序常见的需求之一,特别是在处理大量数据或多媒体文件时。Android提供了多种方式来实现这一功能,包括使用Java I/O流、Android的File类以及ContentProvider。下面我们将...

    无需权限将文件保存到sdcard或应用缓存文件中

    通常,保存文件到外部存储(如SD卡)或内部存储(应用缓存文件)需要相应的权限,但在某些情况下,开发者可以采取特定的方式来实现“无需权限”地将文件保存到这些位置。下面我们将详细探讨这个主题。 一、Android...

    Android---课程设计

    说明: 测试手机为小米2s,能够完整采集内置加速度传感器数据。 功能: 1.实时显示加速度数据、...6.采集的数据以文件形式保存,路径:storage/sdcard0/222.txt 技术: 1.UI界面 2.传感器管理器API 3.多线程 4.文件存储

    android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来

    在Android开发中,从服务器端下载图片并保存到本地SD卡是常见的需求,尤其是在构建一个包含大量图片的应用,如新闻阅读、社交应用或者电商应用。这个过程涉及到网络请求、文件操作以及UI显示等多个方面。以下将详细...

    Android解析如何获取SDCard 内存项目源代码

    在Android系统中,获取SDCard(外部存储)的内存信息是开发者经常遇到的任务,这有助于管理应用程序的存储需求,比如保存用户数据、缓存文件或者下载内容。标题提到的"Android解析如何获取SDCard内存项目源代码"显然...

    Android数据存储(内置sdcard3)

    "Android数据存储(内置sdcard3)"这个主题聚焦于Android设备上内部存储空间的第三部分,通常称为内部SD卡或者emulated storage。在Android中,内部存储被划分为不同的分区,为不同类型的数据提供存储空间。 内部SD...

    Android4.0下使用framebuffer抓屏并保存成bmp文件

    在Android系统中,framebuffer(帧缓冲)是操作系统用于存储屏幕图像数据的内存区域,它直接与硬件交互,负责将像素数据渲染到屏幕上。在Android 4.0(Ice Cream Sandwich)版本中,开发者可以通过访问framebuffer来...

Global site tag (gtag.js) - Google Analytics