在android中使用openFileInput和openFileOutput读取设备上的文件,这两个方法只支持读取该应用目录下的文件,路径位于/data/data/<package name>/files目录中读取非其自身目录下的文件将会抛出异常。需要提醒的是,如果调用FileOutputStream 时指定的文件不存在,Android 会自动创建它。另外,在默认情况下,写入的时候会覆盖原文件内容,如果想把新写入的内容附加到原文件内容后,则可以指定其mode为Context.MODE_APPEND。
1 String FILE_NAME = “tempfile.tmp”; //确定要操作文件的文件名
2 FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); //初始化
3 // Create a new file input stream.
4 FileInputStream fis = openFileInput(FILE_NAME); //创建输入流,读取文件
2 FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); //初始化
3 // Create a new file input stream.
4 FileInputStream fis = openFileInput(FILE_NAME); //创建输入流,读取文件
如果希望文件具有多个权限,可以使用"+"连接,例如:
1 FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_WORLD_READABLE+
2 Context.MODE_WORLD_WRITEBLE);
2 Context.MODE_WORLD_WRITEBLE);
1 FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
一般将要读取的文件放在应用程序的/res/raw/下,如mydatafile.mp3。那么就可以在你的应用中使用getResources 获取资源后,以openRawResource 方法(不带后缀的资源文件名)打开这个文件,实现代码如下所示:
1 Resources myResources = getResources();
2 InputStream myFile = myResources.openRawResource(R.raw.myfilename);
2 InputStream myFile = myResources.openRawResource(R.raw.myfilename);