当我启动应用程序时,我将调用Web服务并在我的应用程序中保存服务返回的文件。出于离线目的,我希望在我的应用中有一个文件,万一Web服务已关闭。
我的问题是:我想用我从网络服务收到的文件覆盖我拥有的文件。我该怎么办?我应该在哪里保存文件才能执行此任务?
我正在保存我内部存储中收到的文件,但离线文件我不知道应该保存在哪里。任何代码?适应症?新的。
答案 0 :(得分:0)
我建议:
您应该使用getExternalStorageDirectory
将文件保存在应用程序的内部存储目录中,这会将您的文件放在以下位置:/Android/data/<package_name>/files/
。这是放置文件的最佳位置,因为卸载应用程序时,此目录中的文件也将被删除。
更多信息请参阅:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal和http://developer.android.com/training/basics/data-storage/files.html
答案 1 :(得分:0)
Android中基本上有两个位置可用于保存文件。用户和所有应用程序可访问的外部存储,或专用于您的应用程序的专用目录。为了你的目的,后来似乎更合适。
要操作私有存储中的文件,请参阅Context类中的openFileInput和openFileOutput(以及其他)方法。
保存示例:
FileOutputStream fos = context.openFileOutput("my-file", Context.MODE_PRIVATE);
fos.write(bytes);
fos.close();
加载示例:
File f = new File(context.getFilesDir(),"my-file");
if (f.exists()) {
byte[] bytes = new byte[(int)f.length()];
FileInputStream fis = context.openFileInput(f.getName());
fis.read(bytes);
fis.close();
}