我需要一些文本数据(200万镇的街道名称)才能进入我的Android应用程序。我认为最好的方法是在第一次启动时将它存储为只读的sqlite数据库。正如我所读到的那样,使用预定义的数据库执行此操作非常繁琐且不干净,但您必须从外部存储器或其他东西复制它,然后将数据复制两次。所以我考虑使用原始资源中的CSV文件并在导入后将其删除,但这也是不可能的,因为这些数据将内置到sdk文件中,不能再被删除。
我的目标是从本地进行某种初始数据传输并删除此数据源。任何想法如何正确实现?我想不从服务器下载数据,因为这意味着我的应用程序需要互联网连接的唯一原因是因为下载了初始数据。否则它不需要互联网连接。
答案 0 :(得分:0)
如何将.csv文件放在资产文件夹中并阅读它。
String next[] = {};
List<String[]> list = new ArrayList<String[]>();
try {
CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("test.csv")));
for(;;) {
next = reader.readNext();
if(next != null) {
list.add(next);
} else {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
我想我会压缩初始安装资源中的数据并在安装时展开它。这个答案可以参考一个7zip开源java api。
答案 2 :(得分:0)
同时我知道我将在我的应用程序中使用的数据太复杂,无法手动填充数据。此外,应用程序无论如何都需要访问Internet,因此我将使用Json字符串来获取数据。