`
韩悠悠
  • 浏览: 842573 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

文件在SD卡存储

 
阅读更多


手机的存储空间分俩种,一种是手机自带的,另一种是SD卡,(外存)


文件保存
FileOutputStream fOutputStream =
  context.openFileOutput(filename, Context.MODE_PRIVATE);
  fOutputStream.write(content.getBytes());
openFileOutput()方法的第一个参数用于指定文件名称,不能包含路径分隔符"/",如果文件不存在,Android会自动创建它,创建的文件保存在/data/data/<package name>files目录
openFileOutput()方法的第二个参数用于指定操作模式,有四种模式,分别为:
Context.MODE_PRIVATE=0
Context.MODE_APPEND =32768
Context.MODE_WORLD_READABLE=1
Context.MODE_WORLD_WRITEABLE=2

文件读取
public String readFile(String filename)throws Exception{
  FileInputStream input = context.openFileInput(filename);
  
  //定义的缓冲区
  byte[] bytes = new byte[1024];
  int len = 0;
  //写入文件到内存
  ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  
  while((len=input.read(bytes))!=-1){
   //把缓冲区中 的数据从0位置开始,读取len长度,写入内存
   outputStream.write(bytes,0,len);
  }
  
  byte[] data  = outputStream.toByteArray();
  outputStream.close();
  input.close();
  return new String(data);
 }

 

文件操作模式
Context.MODE_PRIVATE,为默认操作模式,代表文件是私有数据,只能被应用本身访问,在改模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否具有权限读写该文件。
MOED_WORLD_READABLE:表示当前文件可以被其他应用读取
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入


快速定位文件,在activity中使用this.getFilesDir()


文件在SD卡存储
android2.2之前,SD卡在/sdcard目录
android2.2和之后,SD卡在/mnt/sdcard

使用activity的openFileOutput()方法保存文件,文件是存在手机空间上,一般手机的存储空间不是很大,存放些小文件还可以,如果要存储视频等大文件,是不可行的,对于像视频这样的大文件,我们存储在SD卡

在程序中访问SD卡,需要加入权限
<!--在SD卡中创建于删除文件的权限-->
<android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!--往SD卡中写入数据权限-->
<android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

//判断是否存在SD卡,是否可写
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
 //保存
 fileService.saveToSDCard(filenameString, context);
}

public void saveToSDCard(String filename,String content)throws Exception{
  File file = new File(Environment.getExternalStorageDirectory(),filename);
  FileOutputStream fOutputStream =
     new FileOutputStream(file);
  fOutputStream.write(content.getBytes());
  fOutputStream.close();
}

分享到:
评论

相关推荐

    文件转移sd卡工具

    在安卓操作系统中,由于内置存储空间有限,许多用户会选择使用SD卡来扩展手机的存储容量。"文件转移SD卡工具"就是专为了解决这个问题而设计的,它可以帮助用户将安装在手机内存中的应用程序轻松迁移到外部SD卡上,...

    stm32_hal库cubemax文件系统SD卡读写txt文档

    CUBEMAX文件系统是建立在STM32 HAL库上的一个文件管理系统,用于在STM32微控制器上实现对存储设备(如SD卡)的文件操作。在本项目中,我们关注的是如何使用STM32 HAL库和CUBEMAX文件系统来读写TXT文档。 首先,要...

    基于FatFs文件系统的SD卡存储器设计.pdf

    为了更好地管理和利用SD卡存储资源,采用合适的文件系统对存储媒介进行管理变得尤为重要。本文采用的FatFs文件系统就是一种专门为嵌入式系统设计的开源FAT文件系统,具有良好的硬件平台独立性和广泛的适用性。 ####...

    SD卡数据手册.rar_SD卡中文资料_SD卡手册_SD卡数据手册_SD卡规范_SD卡;数据手册;接口协议

    手册中通常会涵盖SD卡的不同版本(如SD、SDHC、SDXC),它们的区别在于存储容量和文件系统支持。此外,手册还会介绍SD卡的电气特性,如电源需求、引脚定义以及错误处理机制。 "SD卡读写规范"文件则深入解析了SD卡...

    STM32读写SD卡中的FAT文件_FATFS读写txt_stm32SD_stm32SD卡_

    在STM32项目中,经常需要进行外部存储设备如SD卡的读写操作,以便存储数据或者运行程序。本节将详细介绍如何使用STM32通过FAT文件系统读写SD卡中的TXT文件。 1. **FATFS文件系统** FAT文件系统(File Allocation ...

    Micropython SD卡驱动文件

    Micropython SD卡驱动文件是一种用于在Micropython环境下与SD存储卡进行交互的软件资源。它提供了一组函数和方法,可用于初始化SD卡、读取文件、写入文件、创建目录等操作,使开发者能够方便地在Micropython设备上...

    无文件系统的sd卡的内容获取

    在这种情况下,我们无法通过常规的文件操作方式来访问SD卡上的数据,因为操作系统无法识别和解析这些数据。然而,这并不意味着数据无法获取。本文将深入探讨如何在无文件系统的SD卡中获取内容,主要基于提供的压缩包...

    android demo,sd卡文件存储和data下文件存储。

    在使用SD卡存储时,需要注意权限问题。自Android 6.0(API级别23)以来,应用需要在运行时请求`WRITE_EXTERNAL_STORAGE`和`READ_EXTERNAL_STORAGE`权限。 **2. data下文件存储** 内部data目录下的文件存储主要用于...

    Android 之 将RAW资源文件写入SD卡工具类

    在Android开发中,有时我们需要将应用内部的RAW资源文件复制到外部存储(如SD卡)以便于用户访问或保存数据。这个"Android之将RAW资源文件写入SD卡工具类"是一个实用的功能,可以帮助开发者轻松完成这个任务。下面将...

    STM32的DMA方式实现SD卡存储

    在这个项目中,我们将关注如何利用STM32F103的DMA(直接内存访问)功能来实现串口数据的高效采集,并通过FATFS文件系统将这些数据存储到SD卡上。以下是关于这个主题的详细解释: 首先,DMA是一种在没有CPU干预的...

    FAT文件系统 SD卡实验程序代码(读写SD卡

    在这个"SD卡实验程序代码(读写SD卡)"中,我们关注的是如何在嵌入式系统或者微控制器上实现对SD卡的读写操作,这通常涉及到硬件层面的接口设计以及软件层面的FAT文件系统的驱动程序开发。SD卡遵循MMC...

    SD卡的文件播放器 SD卡的规范历程

    SD卡,全称为Secure Digital Memory Card,是一种广泛应用于便携式设备如智能手机、数码相机、平板电脑等的数据存储介质。它的出现极大地提升了设备的存储能力,使得用户可以方便地存储和转移大量数据,如照片、视频...

    rtthread + STM32F407VE + esp8266 +SD卡 从网络下载文件存到SD卡中

    在本文中,我们将深入探讨如何使用RTThread操作系统、STM32F407VE微控制器、ESP8226 Wi-Fi模块以及SD卡,实现从网络下载文件并将其存储到SD卡上的完整流程。这个项目涉及到嵌入式系统开发中的多个关键环节,包括网络...

    S7300 SD卡修改软件及镜像文件

    而在实际操作中,SD卡作为数据存储和程序传输的重要媒介,其状态直接影响着系统的运行。本文将深入探讨"**S7300 SD卡修改软件及镜像文件**"的相关知识点,旨在帮助用户更好地理解和处理S7-300 PLC与SD卡之间的各种...

    STM32文件系统 SD卡U盘等读写程序

    STM32文件系统是嵌入式开发中一个重要的组成部分,特别是在涉及到存储设备如SD卡或U盘的数据交互时。在本项目"STM32文件系统 SD卡U盘等读写程序"中,开发者构建了一个系统,能够实现STM32微控制器对SD卡和U盘的读写...

    基于STM32芯片的U盘SD卡文件传输技术

    本文的研究是在μC/OS-Ⅲ操作系统下进行的,主要关注U盘与SD卡之间的文件传输。为了实现这一目标,采用了以下步骤: 1. **SPI串行总线与OTG接口**:STM32F107VCT6通过SPI串行总线与SD卡进行数据传输,同时利用其...

    串口接收+DMA存储到SD卡.zip

    在本文中,我们将深入探讨如何使用STM32F103单片机通过串口接收外部设备发送的数据,并利用DMA(直接内存访问)技术将其高效地存储到SD卡上。这个过程涉及到微控制器的串行通信、DMA机制以及与SD卡的交互,这些都是...

    zcu102读写SD卡文件

    【标题】"ZCU102读写SD卡文件"涉及的是在Zynq FPGA开发板ZCU102上实现对SD卡的文件系统操作。这个主题涵盖了几大关键知识点,包括硬件平台ZCU102、Zynq SoC、XilFFS文件系统以及standalone模式下的SD卡驱动。 ZCU...

    51单片机读写SD卡程序,使用FAT文件系统

    FAT文件系统是个人计算机中广泛使用的文件系统,尤其在移动存储设备如U盘和SD卡上。FAT文件系统的核心在于管理磁盘上的数据分配,通过FAT表来跟踪文件在磁盘上的位置。当51单片机需要读取或写入SD卡时,它首先需要与...

Global site tag (gtag.js) - Google Analytics