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的应用程包相关的所有私有文件的文件名 |
代码案例:
读取文件: //保存读取数据的字节流 ByteArrayOutputStream stream=new ByteArrayOutputStream(); FileInputStream fis = openFileInput(“text1.txt”); byte[] buffer=new byte[1024]; int len=-1; while((len=inStream.read(buffer))!=-1) { stream.write(buffer,0,length); } stream.close(); fis.close(); //关闭输入流 text.setText(stream.toString());//显示出来 写入文件: FileOutputStream fos = openFileOutput(“text1.txt”,MODE_APPEND); fos.write(text.getText().toString().getBytes()); fos.close(); //关闭输出流