您的位置:首页 > 移动开发 > Android开发

Android开发进阶:如何读写Androi“.NET研究”d文件

2011-10-20 21:57 656 查看
  Android主要有四大主要组件组成:Activity、ContentProvider、Service、Intent组成。Android文件的运行主要需要读写四大组件的文件。本文将介绍如何读写Android文件,希望对正在进行Android开发的朋友有所帮助。

  文件存放位置

  在Android中文件的I/O是存放在/data/data/<package name>/file/filename目录下。

  提示:Android是基于linux系统的,在linux的文件系统中不存在类似于Windows的磁盘分区现象,其是以一个正斜杠“/”开头。

  Android中得到输入输出流

  在Android中,对于流的操作十分简单。在Context类中有如下两个方法可以直接得到文件输入输出流:

1. public FileInputStream   openFileInput  (String name)
2. public FileOutputStream   openFileOutput  (String name, 上海网站建设yle="color: #0000ff;">int mode)


  顾名思义,通过如上方法就可以得到文件输入输出流。对于第二个方法中的mode,有如下四种模式:

  ◆Use 0 or MODE_PRIVATE( the default operation) :用0表示默认值,只能够创建文件的应用程序访问该文件,每次文件写入为覆盖方式。

  ◆MODE_APPEND to append to an existing file: 每次文件写入为追加方式,类似于StringBuffer中的append()方法。

  ◆MODE_WORLD_READABLE :只有读权限。

  ◆MODE_WORLD_WRITEABLE :只有写权限。

  提示:如果想同时得到读与写的权限,则可以在mode处通过如下方式创建:

MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE


  对于Java SE部分的补充

  FileOutputStream:

  public void write(byte[] b) throws IOException 该方法可将指定的字节数组写入文件输出流

  FileInputStream:

  public int read(byte[] b) throws IOException 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。

  对于输出流直接使用write方法即可,可参考如下代码:

  Java代码

1. <span style="white-space: pre;">    </span>上海企业网站制作008000;">/**
2.           * 写入数据
3.           * @param fs
4.           * @param content
5.           */
6.          public void fileWrite(FileOutputStream fos,String content){
7.                    byte[] contentcontentByteArray = content.getBytes();
8.                    try {
9.                             fos.write(contentByteArray);
10.                    } catch (IOException e1) {
11.                             e1.printStackTrace();
12.                    }
13.                    try {//关闭流
14.                             fos.close();
15.                    } catch (IOException e) {
16.                             e.printStackTrace();
上海徐汇企业网站制作">17.                    }
18.          }


  对于输入流,出于性能考虑,可先使用ByteArrayOutputStream,向内存中创建一个字符数组,当将文件读完后,在读入,参考如下代码:

  Java代码

1.           * 读数据
2.           * @param fis
3.           * @return
4上海徐汇企业网站设计与制作>.           */
5.          public String fileRead(FileInputStream fis){
6.                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
7.                    byte[] buffer = new byte[1024];
8.                    int len = -1;
9.                    try {
10.                             while((len=(fis.read(buffer))) != -1){
11.                                      baos.write(buffer,上海企业网站设计与制作>0,len);
12.                             }
13.                    } catch (IOException e) {
14.                             e.printStackTrace();
15.                    }
16.                    String result = new String(baos.toByteArray());
17. //System.out.println(result);
18.                    try {
19.                             baos.close();
20.                             fis.close();
上海闵行企业网站设计与制作">21.                    } catch (IOException e) {
22.                             e.printStackTrace();
23.                    }
24.                    return result;
25.          }


  ByteArrayOutputStream:此类实现了一个输出流,其中的数据被写入一个 byte 数组。

  public void write(byte[] b,int off,int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte 数组输出流。

  可参考代码:FileIO 代码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: