Android文件操作

来源:互联网 发布:nginx zookeeper 负载 编辑:程序博客网 时间:2024/05/21 09:06

转自:http://blog.csdn.net/warmspace2008/article/details/5872261


   Android中读取/写入文件的方法,与Java中的I/O是一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。但是在默认状态下,文件是不能在不同的程序之间共享的,以上两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出FileNotFoundException异常。创建的文件存放在/data/data/<package name>/files目录下。

 

返回值

函数

备注

FileInputStream

openFileInput(String name)

打开指定的私有文件输出流。

name:要打开的文件名,不能包含路径分隔符。

FileOutputStream

openFileOutput(String name,int mode)

打开指定的私有文件输出流。

name:要打开的文件名,不能包含路径分隔符。

mode:操作模式。默认使用0或MODE_PRIVATE,其他模式包括:

l MODE_APPEND:追加

l MODE_WORLD_READABLE

l MODE_WORLD_WRITEABLE

如果调用此函数时,指定的文件不存在,则会自动创建一个空白的文件。

在默认情况下,写入的时候会覆盖原文件的内容。如果要把新写入的内容追加到原文件内容后面,可以指定其模式为Context.MODE_APPEND。

boolean

deleteFile(String name)

删除指定的文件

name:要删除的文件名,不能包含路径

String[]

fileList()

返回与调用这个函数相关的Context的应用程包相关的所有私有文件的文件名

         示例:

    public void writeToFile( )

    {

       String str = "This is test!";

       try {

           FileOutputStream fos = openFileOutput("qxl.txt",MODE_PRIVATE);

           fos.write(str.getBytes());

           fos.close();

       } catch (FileNotFoundException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

      

    }

    public void readFromFile ( )

    {

    try {

           FileInputStream fis = openFileInput( "qxl.txt" );

           byte[] buffer = new byte[100];

           fis.read( buffer );

           System.out.println( new String(buffer) );

           fis.close();

       } catch (FileNotFoundException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

    }

       注意:在对文件操作时一定要在AndroidManifest.xml文件中入权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

如果在开发应用程序时,需要通过加载一个文件的内容来初始化程序,则可以在编译程序之前将这个文件即静态(static)文件放在res/raw/myDataFile目录下,然后在程序中通过Resources.openRawResource(R.raw.文件名)这个方法返回一个InputStream对象。使用示例代码如下:

Resources myResources = getResources();

InputStream myFile = myResources.openRawResource(R.raw.myFileName);



原创粉丝点击