android文件读写
来源:互联网 发布:rs232端口是什么意思 编辑:程序博客网 时间:2024/05/17 17:55
android文件的读写主要分为两个方面,一个是将内容写入本应用的data文件夹中,另一个是将内容写入到sdcard中。两者都使用I/O流的读写技术。
下面具体具体介绍这两方面的内容:
一。将内容写入本应用中:
/** * @description:将内容保存到内置存储中 * @author:Administrator * @return:boolean * @param fileName * 文件名 * @param fileContent * 文件内容 * @param context * 上下文对象 * @return */public static boolean fileSaveApp(String fileName, String fileContent,Context context) {try {// 用android提供的输出流来将内容写入到文件中,注意mode的用途FileOutputStream fos = context.openFileOutput(fileName,context.MODE_APPEND);fos.write(fileContent.getBytes());fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return false;}
注意android的上下文对象context在这个方法中起的的作用(可以用它来打开一个输出流,或者打开一个输入流),还有文件的写入模式。这里用的是文件的追加模式。数据时只可被本应用操作的。
二。将数据写入sdcard中
/** * @description:将内容写入到sdcard的文件当中 * @author:Administrator * @return:boolean * @param fileName * 文件名 * @param fileContent * 文件内容 * @param path * 文件路径 * @return */public static boolean fileSave(String fileName, String fileContent,File path) {File file = new File(path, fileName);if (!file.exists()) {try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}FileOutputStream fos = null;int count = 0;try {fos = new FileOutputStream(file);count = fileContent.getBytes().length;fos.write(fileContent.getBytes(), 0, count);fos.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return false;}
注意这个方法中的path参数指的是sdcard的路径:=Environment.getExternalStorageDirectory();
注意写入数据的时候需要判断sdcard是否存在是否可写:Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
最后需要注意如果要向sdcard写入数据必须在manifest.xml加入权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />第一个权限是指对sdcard可写,第二个权限是指可以在sdcard中建立和删除文件。
最后将从应用的data中读取数据的方法也写进来:
/** * @description:读取本应用data文件夹中文件的内容(如果要读取sdcard中的文件时一定要去判断sdcard是否存在,并且是可读的) * @author:Administrator * @return:String 文件的内容 * @param fileName * 文件名 * @param context * 上下文对象 * @return */public static String readFile(String fileName, Context context) {String str = "";try {FileInputStream fis = context.openFileInput(fileName);ByteArrayOutputStream bos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = fis.read(buffer)) != -1) {// 用字节输出流将读到的内容写入到内存中bos.write(buffer, 0, len);}// 将输出流中的数据转换为Stringstr = new String(bos.toByteArray(), "utf-8");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return str;}
这里就不再介绍从sdcard中读取文件内容的方法了。
这里将android本应用的文件存储的4中方式列举出来:可以参考 http://www.cnblogs.com/jqyp/archive/2010/09/13/1825249.html
- 【android】:android文件读写
- android文件读写,ndk文件读写
- Android下 读写文件
- android 读写文件
- Android文件的读写
- Android 文件读写
- android 读写文件
- Android读写文件
- Android下读写文件
- Android文件的读写
- Android读写文件
- android读写文件
- Android读写文件
- android读写文件
- Android读写文件
- Android 文件读写
- Android中读写文件
- android中读写文件
- 接口
- 理解嵌入式开发中的一些硬件相关的概念
- C/C++语言二维数组的传参方法总结
- 串口与并口
- 2012九月3号阿里巴巴笔试题目
- android文件读写
- 华为机试 频率最高 频率最低的 单词
- c++0x 求数组长度
- hdu 2526(模拟)
- Thinking in Java之集合相关整理(源码分析)
- 2012年九月六号阿里巴巴面试
- android GestureDetector 手势的判断
- 如何让word档在同一页上显示两列或更多列
- print 输出到指定文件中,文件名加上当天日期