SharedPreferences的四种操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.
通用操作类。
注意,如果写入SD卡,需要先注册权限:
<!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import android.content.Context; import android.os.Environment; public class FileService { private Context context; public FileService(Context context) { this.context = context; } public void saveToSDCard(String filename, String content)throws Exception { File file = new File(Environment.getExternalStorageDirectory(), filename); FileOutputStream outStream = new FileOutputStream(file); outStream.write(content.getBytes()); outStream.close(); } /** * 保存文件 * @param filename 文件名称 * @param content 文件内容 */ public void save(String filename, String content) throws Exception { //私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容 FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_PRIVATE); outStream.write(content.getBytes()); outStream.close(); } /** * 保存文件 * @param filename 文件名称 * @param content 文件内容 */ public void saveAppend(String filename, String content) throws Exception {//ctrl+shift+y / x //追加模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容 FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_APPEND); outStream.write(content.getBytes()); outStream.close(); } /** * 保存文件 * @param filename 文件名称 * @param content 文件内容 */ public void saveReadable(String filename, String content) throws Exception { FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_WORLD_READABLE); outStream.write(content.getBytes()); outStream.close(); } /** * 保存文件 * @param filename 文件名称 * @param content 文件内容 */ public void saveWriteable(String filename, String content) throws Exception { FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_WORLD_WRITEABLE); outStream.write(content.getBytes()); outStream.close(); } /** * 保存文件 * @param filename 文件名称 * @param content 文件内容 */ public void saveRW(String filename, String content) throws Exception { FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_WORLD_WRITEABLE + Context.MODE_WORLD_READABLE); outStream.write(content.getBytes()); outStream.close(); } /** * 读取文件内容 * @param filename 文件名称 * @return 文件内容 * @throws Exception */ public String read(String filename) throws Exception { FileInputStream inStream = context.openFileInput(filename); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while((len = inStream.read(buffer)) != -1){ outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray(); return new String(data); } }
使用方法:
FileService service = new FileService(getApplicationContext()); try { //判断SDCard是否存在,并且可以读写 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ service.saveToSDCard(filename, content); Toast.makeText(getApplicationContext(), R.string.success, 1).show(); }else{ Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show(); } } catch (Exception e) { Toast.makeText(getApplicationContext(), R.string.fail, 1).show(); e.printStackTrace(); }
相关推荐
在IT领域,文件读写是基础且至关重要的操作,它涉及到程序与数据的交互,无论是存储用户输入,保存程序状态,还是处理数据,都离不开文件的读取和写入。以下将详细介绍关于“读取文件操作”的核心知识点,并结合可能...
在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...
本主题将深入探讨如何在C语言环境下读取和保存BMP文件。 BMP文件结构主要由三个部分组成:文件头、信息头和像素数据。文件头包括文件类型标识、文件大小、保留字段和偏移量,用于指示图像数据在文件中的位置。信息...
在Android系统中,文件的保存和读取是应用程序处理数据的基本操作。Android提供了多种方法来存储数据,包括内部存储、外部存储以及SQLite数据库等。在这个主题中,我们将重点关注通过文件系统进行数据存取的方法。 ...
这些库封装了位图文件的读取、修改和保存操作,使开发者能更专注于图像处理算法,而不是底层细节。 **位图与其他图像格式** 位图并不是唯一的图像格式,JPEG、PNG、GIF等也是常见的图像文件格式。它们各有优缺点,...
根据提供的文件标题、描述、标签以及部分内容,我们可以总结出以下关于如何使用C#进行文本文件的数据流形式保存与读取的相关知识点。 ### 一、文本文件处理基础 #### 1.1 文件操作类简介 在C#中,处理文件通常会...
本主题将深入探讨如何读取使用CMYK色彩模式存储的Tiff文件中的图像数据,并将其转换为更常见的RGB色彩模式。 TIFF(Tagged Image File Format)是一种灵活的位图图像格式,广泛用于印刷和扫描领域,因为它支持多种...
本教程将详细介绍如何使用MATLAB读取HDF文件,对图像进行处理,然后将结果保存为NC文件。 1. **读取HDF文件**: MATLAB提供了`hdfread`函数来读取HDF文件。例如,若有一个名为`data.hdf`的HDF文件,且我们需要读取...
在Android平台上,处理GBK编码的TXT文档涉及到对字符编码的理解以及使用适当的IO流进行文件操作。GBK编码是一种在中国广泛使用的汉字编码标准,包含了大量中文字符,对于处理中文文本非常重要。以下将详细介绍如何在...
总结来说,"简单图像读取、保存程序"是一个基础的图像处理示例,涵盖了BMP文件的读取、显示、保存以及可能的大小调整操作。对于初学者来说,这是一个很好的起点,可以帮助他们理解图像处理的基本概念和技术,为...
某系统需要提供一个文件加密模块,加密流程包括三...现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块。
在C++编程中,读取和保存txt格式的数据文件是一项基本技能,对于处理文本数据尤其重要。本教程将深入探讨如何使用C++实现这一功能,让你轻松掌握这一基础操作。 首先,我们需要理解C++中与文件操作相关的库,主要是...
### MFC中读取编辑框数据并保存至TXT文档 #### 概述 在MFC(Microsoft Foundation Classes)开发环境中,经常会遇到需要读取用户输入的数据,并将其保存到文件中的需求。本文将详细介绍如何在MFC中实现从编辑框(即`...
本文将深入探讨如何在Oracle中保存与读取Blob类型的文件,这一过程涉及到数据库操作、流处理以及异常管理,是IT行业中数据库应用的重要组成部分。 ### 一、保存Blob类型文件到Oracle数据库 #### 代码解析: 1. **...
在处理“WPF操作批量读取Raw文件”的主题时,我们聚焦于如何利用WPF技术来高效地管理和展示由工业设备生成的Raw格式数据文件。Raw文件通常包含未经处理的图像传感器数据,具有高度的细节和灵活性,但需要特定的处理...
本篇将深入探讨“TwinCAT 3配方数据的保存及读取”这一主题,基于提供的文件名,我们可以理解这涉及到如何在TwinCAT 3环境中管理和操作配方数据。 首先,让我们了解一下什么是配方数据。在制造业中,配方通常指的是...
在Android平台上,文件的保存与读取是移动应用开发中不可或缺的部分。无论是用户数据的持久化存储、资源文件的管理还是日志记录,都离不开文件操作。以下将详细讲解Android中如何进行文件的保存和读取。 首先,...
在本文中,我们将探讨如何从二进制文件中读取MNIST数据集,并将其转换为图片格式进行保存。 首先,MNIST数据集的二进制文件通常分为两个部分:一个是图像文件(例如,`train-images-idx3-ubyte`和`t10k-images-idx3...
在这个例子中,`liblas.File`对象的`mode='r'`参数表示以读取模式打开文件,然后通过迭代器遍历文件中的每个点,获取其XYZ坐标和强度(Intensity)信息。 保存XYZI点云数据到新的LAS文件则需要用到`liblas`的写入...
#### 一、Qt与Bin文件操作简介 在软件开发过程中,二进制(bin)文件是一种常见的数据存储格式,它能够高效地存储各种类型的数据,包括但不限于文本、图像、音频等。Qt作为一款跨平台的应用程序开发框架,提供了...