首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android上解析大型csv文件java

在Android上解析大型csv文件java
EN

Stack Overflow用户
提问于 2014-03-18 13:22:52
回答 1查看 770关注 0票数 0

我有一个csv文件,你需要迁移数据库。我创建了一个类,用于它的解析和传输到数据库,但速度相当慢。导入大约需要三分钟。有什么办法让它更快吗?我为我的英语道歉。提前感谢!

代码语言:javascript
复制
final String[] SCANCODES = {"CODEPRODUCT", "SCANCODE"};
dbSync.importCSV(SCANCODES, "SCANCODES.CSV", "SCANCODES");  

////
.....
////

public void importCSV(String[] tableCol, String nameFile, String nameTable) {
        final File DATABASE_DIRECTORY = new File(
        Environment.getExternalStorageDirectory(), "ImportExport");
        final File PATH = new File(DATABASE_DIRECTORY,"SCANCODES.CSV");
        ContentValues cv = new ContentValues();
        BufferedReader br = null;
        String s = "";
        boolean skipLines = true;
        String[] data;
        db.beginTransaction();
        try {
            br = new BufferedReader(new InputStreamReader(new FileInputStream(PATH), "Windows-1251"));
            while ((s = br.readLine()) != null) {
                //skip header
                   if (skipLines) {
                        skipLines = false;
                        continue;
                    }
                //- 1 not skip blank
                data = s.split(";", -1);
                for (int i = 0; i < data.length - 1; ++i) {
                    cv.put(tableCol[i], data[i]);
                }
                db.insert(nameTable, null, cv);
            }
            db.setTransactionSuccessful();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                db.endTransaction();
                br.close();
                new Folder().deleteFolder();

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

编辑添加编码

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 13:34:03

有一个bulkInsert方法。它应该能大大提高性能。

据我所知,您正在本地读取该.csv文件。与读取.csv文件不同,您可以在assets文件夹中使用有效的SQLite数据库发布APK,然后只需将该文件移动到数据库文件夹,如下所示:

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22480727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档