当我启动应用程序时,我将调用 Web 服务并将服务返回的文件保存在我的应用程序中。出于离线目的,我想在我的应用程序中有一个文件,以防网络服务关闭。
我的问题是:我想用从 Web 服务收到的文件覆盖我拥有的文件。我该怎么做?我应该在哪里保存文件才能执行此任务?
我正在将收到的文件保存在我的内部存储中,但我不知道我应该将它保存在哪里的脱机文件。有代码吗?适应症?对此很陌生。
我会建议:
您应该将文件保存在应用程序的内部存储目录中,使用 getExternalStorageDirectory
which 会将您的文件放在以下位置:/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
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();
}