我的应用程序允许用户将其数据导出给其他用户或只是保存为备份。
导入/导出工作正常
为了让用户在第一次安装我的应用程序时有一个示例数据,我想打包一些默认数据。我创建了示例数据,测试工作正常,然后我将它打包在assets
文件夹中,并在用户第一次运行应用程序时加载它。
但我得到文件未找到异常
代码如下:
private List<Giveaway> loadJsonData(Uri data, User user) {
List<Giveaway> result = null;
try {
InputStream is = this.getContentResolver().openInputStream(data);
Gson parser = new GsonBuilder().setDateFormat("dd/MM/yy").setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).setLongSerializationPolicy(LongSerializationPolicy.DEFAULT).setLenient().excludeFieldsWithModifiers(Modifier.FINAL, Modifier.STATIC, Modifier.TRANSIENT).create();
Set<Giveaway> temp = new HashSet<Giveaway>(50);
temp.addAll((Collection<? extends Giveaway>) parser.fromJson(new InputStreamReader(is), TypeToken.getParameterized(List.class, Giveaway.class).getType()));
result = new ArrayList<Giveaway>(temp);
} catch (FileNotFoundException e) {
e.printStackTrace();
result = new ArrayList<Giveaway>(1);
}
return result;
}
我称之为:
loadJsonData(Uri.parse("file:///android_asset/giveaway_export.json"), sampleUser);