Android数据存储方式之文件存储详解
2016-10-31 19:52
603 查看
关于Android的数据存储方式有五种,分别是 1. 使用SharedPreferences存储方式(偏好设置), 2. 文件存储数据, 3. SQLite存储方式, 4. 使用ContentProvider存储数据, 5. 网络存储数据 。
今天主要讲解一下文件的存储方式,在项目的很多地方都会用到文件存储(比如 : 存放客户端固定配置信息 , 从网络下载文件等等)。
Context提供了2种方法打开数据文件里的文件IO流FileInputStream ,FileOutputStream来操作文件。
先看使用方法:context.openFileInput(String FileName);FileName 为文件名;
context.openFileOutput(String FileName , int mode);FileName
为文件名; mode 为文件的打开模式。
mode有一下选项:
1.MODE_PRIVATE:为默认操作模式 , 代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原来的内容,如果想把新写入的内容追加到原文件中,则可以使用MODE_APPEND模式
2.MODE_APPEND:该模式会检查文件是否存在,存在就往文件中追加内容,否则就新建文件。
3.MODE_WORLD_PEADABLE:表示当前文件可以被其他应用读取。
4.MODE_WORLD_WRITEABLE : 表示当前文件可以被其他应用写入。
Context还提供了几个重要方法:
1.getDir(String name,int mode) : 在应用程序的数据文件下获取或者创建name对应的子目录。
2.File getFileDir() : 获取该应用程序的数据文件夹的绝对路径。
3.String[ ] fileList() : 返回该应用数据文件夹的全部文件。
示例代码:TestActivity :
也可以将其封装成工具类,提高代码可读性:
以上就是Android文件存储的大致内容,写的不好如有更好的建议欢迎交流。共勉;
今天主要讲解一下文件的存储方式,在项目的很多地方都会用到文件存储(比如 : 存放客户端固定配置信息 , 从网络下载文件等等)。
Context提供了2种方法打开数据文件里的文件IO流FileInputStream ,FileOutputStream来操作文件。
先看使用方法:context.openFileInput(String FileName);FileName 为文件名;
context.openFileOutput(String FileName , int mode);FileName
为文件名; mode 为文件的打开模式。
mode有一下选项:
1.MODE_PRIVATE:为默认操作模式 , 代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原来的内容,如果想把新写入的内容追加到原文件中,则可以使用MODE_APPEND模式
2.MODE_APPEND:该模式会检查文件是否存在,存在就往文件中追加内容,否则就新建文件。
3.MODE_WORLD_PEADABLE:表示当前文件可以被其他应用读取。
4.MODE_WORLD_WRITEABLE : 表示当前文件可以被其他应用写入。
Context还提供了几个重要方法:
1.getDir(String name,int mode) : 在应用程序的数据文件下获取或者创建name对应的子目录。
2.File getFileDir() : 获取该应用程序的数据文件夹的绝对路径。
3.String[ ] fileList() : 返回该应用数据文件夹的全部文件。
示例代码:TestActivity :
public class TestActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); super.onCreate(savedInstanceState); } /** * 写入文件 * * @param content */ public void writeFiles(String content) { // 步骤1:获取输入值 if (content == null) return; try { // 步骤2:创建一个FileOutputStream对象,MODE_APPEND追加模式,默认为MODE_PRIVATE FileOutputStream fos = openFileOutput("message.txt", MODE_APPEND); // 步骤3:将获取过来的值放入文件 fos.write(content.getBytes()); // 步骤4:关闭数据流 fos.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 读出文件 * * @param content */ public String readFiles() { try { FileInputStream inStream = this.openFileInput("message.txt"); byte[] buffer = new byte[1024]; int hasRead = 0; StringBuilder sb = new StringBuilder(); while ((hasRead = inStream.read(buffer)) != -1) { sb.append(new String(buffer, 0, hasRead)); } inStream.close(); return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }
也可以将其封装成工具类,提高代码可读性:
/** *文件工具类 * @author 蔡睿智 * */ public class FileUtils { /** * 保存文件内容 * * @param c * @param fileName * 文件名称 * @param content * 内容 */ public static void writeFiles(Context context,String fileName,String content,int mode) throws Exception{ // 打开文件获取输出流,文件不存在则自动创建 FileOutputStream fos = context.openFileOutput(fileName, mode); fos.write(content.getBytes()); fos.close(); } /** * 读取文件内容 * * @param c * @param fileName * 文件名称 * @return 返回文件内容 */ public static String readFiles(Context c, String fileName) throws Exception { ByteArrayOutputStream baos=new ByteArrayOutputStream(); FileInputStream fis=c.openFileInput(fileName); byte[] buffer=new byte[1024]; int len=0; while((len=fis.read(buffer))!=-1){ baos.write(buffer,0,len); } String content=baos.toString(); fis.close(); baos.close(); return content; } }
以上就是Android文件存储的大致内容,写的不好如有更好的建议欢迎交流。共勉;
相关文章推荐
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- android 数据存储和访问方式一:文件详解
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android 数据存储方式(一.文件+内部外部存储吐血详解)
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- (转)【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- 实例详解Android文件存储数据方式
- FAT12文件系统之数据存储方式详解
- Android 4种数据存储方式详解(二)
- Android中的文件存储数据方式
- android数据存储之文件方式和SharedPreference
- Android中的文件存储数据方式
- Android数据的存储方式(五) —— 文件存储数据
- android 数据存储和访问方式五:网络详解
- Android中关于数据存储的方式--文件存储
- FAT12文件系统之数据存储方式详解