【Android先进】如何使用数据文件来保存程序

在程序,有许多方法来存储和检索数据,本文,它描述了如何使用文件系统来保存数据编程和读取操作

我直接写了一个帮助类,进行文件的写入和读取操作

/**
 * 用于在文件里保存程序数据
 *
 * @author zhaokaiqiang
 *
 */
public class FileHelper {

	private static final String TAG = "FileHelper";
	private Context mContext;

	FileHelper(Context _mContext) {
		mContext = _mContext;
	}

	// 在手机本地硬盘中保存信息
	public void save(String fileName, String content) {

		FileOutputStream fileOutputStream = null;
		try {
			fileOutputStream = mContext.openFileOutput(fileName,
					Context.MODE_PRIVATE);
			fileOutputStream.write(content.getBytes());

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {

				if (fileOutputStream != null) {
					fileOutputStream.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	// 读取手机硬盘中保存的文件
	public void read(String fileName) {
		FileInputStream fileInputStream = null;
		try {
			fileInputStream = mContext.openFileInput(fileName);
			int len = 0;
			byte[] buffer = new byte[1024];
			ByteArrayOutputStream byteArrayInputStream = new ByteArrayOutputStream();
			while ((len = fileInputStream.read(buffer)) != -1) {
				byteArrayInputStream.write(buffer, 0, len);
			}
			String string = new String(byteArrayInputStream.toByteArray());
			Log.d(TAG, string);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fileInputStream != null) {
				try {
					fileInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}
}

注意:使用写入操作的时候。写入的内容会将上次写入的内容进行覆盖

写入的文件保存在/data/data/package name/files文件夹下,使用DDMS能够进行查看

例如以下图所看到的:

使用DDMS将文件导出。就可以查看内容

上面这些是将数据写入到我们的手机自带的存储空间里,假设想写入我们的SDCard,那么应该怎么做呢?

以下的写入到SDCard的操作

// save infomation in the SDCard
	public boolean saveToSDCard(String fileName, String content) {

		// judge weather the SDCard exits,and can be read and written
		if (!Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) {
			return false;
		}

		FileOutputStream fileOutputStream = null;
		File file = new File(Environment.getExternalStorageDirectory(),
				fileName);
		try {
			fileOutputStream = new FileOutputStream(file);
			fileOutputStream.write(content.getBytes());
			return true;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {

				if (fileOutputStream != null) {
					fileOutputStream.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return false;
	}

以下是读取位于SDCard根文件夹下文件的操作方法

// read the file in the SDCard
	public String readFromSD(String fileName) {
		FileInputStream fileInputStream = null;
		File file = new File(Environment.getExternalStorageDirectory(),
				fileName);
		try {
			fileInputStream = new FileInputStream(file);
			int len = 0;
			byte[] buffer = new byte[1024];
			ByteArrayOutputStream byteArrayInputStream = new ByteArrayOutputStream();
			while ((len = fileInputStream.read(buffer)) != -1) {
				byteArrayInputStream.write(buffer, 0, len);
			}
			String string = new String(byteArrayInputStream.toByteArray());
			return string;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fileInputStream != null) {
				try {
					fileInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

		return null;
	}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-08 10:29:50

【Android先进】如何使用数据文件来保存程序的相关文章

JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件

******JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件****** package com.bo.test; import java.io.FileOutputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import

Android采用SharedPreferences方式进行文件的保存与读取

工程目录: 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息.SharedPreferences正是Android中用于实现这中存储方式的技术. 下面直接贴实现代码: package peixun.savaparameter.service; PreferenceService类: <span style="

我的Android 4 学习系列之文件、保存状态和首选项

目录 使用Shared Preference 保留简单的应用程序数据 保存回话间的Activity实例数据 管理应用程序首选项和创建Preference Screen 保存并加载文件以及管理本地文件系统 将静态文件作为外部资源添加 使用Shared Preference 保留简单的应用程序数据 Shared Prefrence 是一种简单的.轻量级的名/值对(NVP)机制,用于保存原始应用程序数据,最常见的是用户的应用程序首选项. Android 中的数据持久化技术为平衡速度.效率和健壮性提供了

android中使用Http下载文件并保存到本地SD卡

---恢复内容开始--- 1.AndroidMainfest.xml中设置权限 1 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission

控制文件,日志文件,数据文件

控制文件中包含了数据库信息.CKPT 进程信息.REDO 信息.数据文件和表空间信息等重要的数据库信息,也包含了日志切换的历史信息和 RMAN 备份的 CATALOG信息 在线日志文件主要用于记录数据库的变更信息. 数据文件是存储Oracle数据库中的数据的,是Oracle数据库最核心的文件.Oracle数据库中的表,索引等都是记录在数据文件中中的.其中系统表空间包含的数据文件里保存了数据库的元数据(metdata),如果metadata出现故障,访问数据库的数据时就会发生问题. 数据文件中还有

Outlook 2013 数据文件.ost 移动

使用Outlook新建电子邮件账号,其数据文件总是保存在默认路径 C:\Users\用户名\AppData\Local\Microsoft\Outlook目录下.该文件会随着时间的推移,越来越大.我们可以通过下面的方法将该文件转移到其他目录下.如E:\ 一.运行regedit打开注册表.展开HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook,新建两个字符串值.分别如下: 新建数值名称为ForcePSTPath,数值数据为:需要迁移到的

SD卡格式化要怎样找回里面的数据文件?

SD卡提示格式化后数据丢失怎么办?丢失的数据还能不能恢复?这篇文章详细介绍了关于对SD卡格式化数据丢失的恢复方法,一起来看看. SD卡出现数据丢失的原因?原因一:读卡器或者电脑USB插口问题当显示无法读取SD卡时,可以先检查读卡器是否有问题,读卡器可以试多几张SD卡,也可以在其他电脑上试试,确定为SD卡问题后再找其他解决办法.原因二:SD卡不干净不多的用户会注意定时保养SD卡,SD卡的金属区域会沾有灰尘或油污,造成与卡槽接触不良,有时无法读取的情况.如果是这种问题,那么只需要检查SD卡的金属区域

第十四篇:获取系统数据文件信息

前言 在 Linux 中,系统数据文件大都不能直接用编辑的方式读取.如此设计一方面是从安全性考虑,另一方面则是从文件检索效率考虑.本文将以口令文件 passwd 为例讲解读取 Linux 中系统数据文件的方法. 基本步骤 1. 包含读写该系统数据文件的专用头文件 ( 如读写口令文件要包含 pwd.h 组文件则是 grp.h ) 2. 使用 set 函数打开文件        3. 使用 get 函数读取下一个记录        4. 使用 end 函数关闭此文件 另,如果数据文件支持某种形式的关

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap