如果我想在我的 android 应用程序中使用 FileInputStream 读取具有文件名的文件,我应该将文件保存在哪里。我可以将它保存在 res/raw 中吗?
问问题
1017 次
2 回答
1
您不能在运行时将其保存在 res/raw 中,您可以将其保存在 sdcard 或缓存目录中。
为了将文件保存到 SD 卡,您必须具有写入卡的权限。您需要将以下内容添加到您的 AndroidManifest.xml:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
接下来,您打开一个文件流,写入它,然后在代码中任何您想这样做的地方关闭它:
String filename = "filename.txt";
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream fos;
byte[] data = new String("data to write to file").getBytes();
try {
fos = new FileOutputStream(file);
fos.write(data);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// handle exception
} catch (IOException e) {
// handle exception
}
于 2012-04-21T12:29:27.267 回答
0
如果你想将文件包含在你的 .apk 中并在运行时读取它,你应该把它放在assets/
你项目的文件夹中,你可以使用:
InputStream istream = context.getAssets().open(FILE_NAME);
到达它。但是,如果您正在寻找从 /sdcard 读取文件的方法,请参阅其他答案。
于 2012-04-21T13:32:23.200 回答