0

我需要一些文本数据(200 万城镇的街道名称)才能进入我的 android 应用程序。我认为最好的方法是在第一次启动时将其存储到只读的 sqlite 数据库中。正如我所读到的,使用预定义的数据库执行此操作非常乏味且不干净,但您必须从外部存储或其他东西复制它,然后将数据复制两次。所以我考虑使用原始资源中的CSV文件并在导入后将其删除,但这也不可能,因为这些数据将内置到sdk文件中,无法再删除。

我的目标是从本地进行某种初始数据传输并删除此数据源。任何想法如何正确地实现这一目标?我不想从服务器下载数据,因为这意味着我的应用程序需要互联网连接的唯一原因是下载初始数据。否则它不需要互联网连接。

4

3 回答 3

1

我想我会压缩初始安装资源中的数据并在安装时扩展它。这个答案参考了一个 7zip 开源 java api。

Android 上的数据压缩(java.util.zip 除外?)

于 2012-08-20T04:47:05.303 回答
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();
    }
于 2012-08-20T04:09:47.090 回答
0

同时我知道我将在我的应用程序中使用的数据过于复杂,无法手动填充数据。此外,该应用程序无论如何都需要互联网访问,因此我将使用 Json 字符串来获取数据。

于 2012-08-26T15:28:30.243 回答