Android文件操作总结
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(); //关闭输出流