2

我想从 csv 文件中读取数据并将其存储到数据库中。这就是我保存 csv 文件的方式(这可以正常工作 - 只是为了显示我计划使用 CSVreader 读取的文件的存储位置和方式):

synchronized public void readFromUrl(String url, String outputFile, Context context) throws FileNotFoundException {
        URL downloadLink = null;
        try {
            downloadLink = new URL(url);
        } catch (MalformedURLException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }
        BufferedReader in = null;

        try {
                        in = new BufferedReader(
                                new InputStreamReader(downloadLink.openStream(), "UTF8"));
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        FileOutputStream fstream = context.openFileOutput(outputFile,Context.MODE_PRIVATE);

        Writer out = new OutputStreamWriter(fstream);

        Log.d(TAG, "BufferedReader "+in); 
        String inputLine = null;
        try {
            while ((inputLine = in.readLine()) != null){
                out.write(inputLine+"\n");
                //logger.debug("DOWNLOADED: "+inputLine);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            fstream.close();
            out.close();
            in.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

到目前为止,我用于读取 csv 文件的代码:

public void readInCSVFile(String filename, Context context) throws IOException {
        IDbHelper dbHelper = new DbHelper(); ; 
        CSVReader products = null;

        products = new CSVReader(new InputStreamReader(context.getAssets().open(filename)));

我得到一个 NoClassDefFoundError 异常。

我的 android 项目的引用库中有 opencsv.jar。

在此先感谢您的帮助。

4

1 回答 1

2

您的项目在 Eclipse IDE 中吗?如果是,请查看是否在“项目属性-> Java 构建路径-> 库”中设置了 lib(opencsv.jar) ,在选项卡中检查了它:“订购和导出”。在“订购和导出”下,将库移到列表顶部。然后清理并重建。

PS:如果这没有帮助,请提供错误的完整堆栈跟踪。

于 2013-02-07T11:00:15.843 回答