【问题标题】:OpenCSV error using CsvToBeanBuilder(FileReader())使用 CsvToBeanBuilder(FileReader()) 的 OpenCSV 错误
【发布时间】:2021-01-31 06:37:42
【问题描述】:

我在一个带有 IntelliJ 的 Android Java 项目中使用 OpenCSV。

我正在尝试运行以下代码来在我的项目中创建一个 bean。注意被“** **”包围的段

import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import com.opencsv.bean.CsvToBeanBuilder;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);


            **List<Restrictions> restrictionData = new CsvToBeanBuilder(FileReader("restrictions.csv"))
                    .withType(Restrictions.class).build.parse();**
    }
}

我从 OpenCSV 的网站上获取了这段代码,他们说:

这里我们只是简单地将字段命名为与标题名称相同。后 也就是说,阅读是一项简单的工作:

List beans = new CsvToBeanBuilder(FileReader("yourfile.csv")) .withType(Visitors.class).build().parse();

这将为您提供示例输入文件中定义的两个 bean 的列表。注意到基本数据类型(包装和展开的原语、枚举和字符串)的类型转换是如何自动发生的。

我的代码与他们的风格相似。这是我得到的错误:

C:\Programming\Android\GoTimeJavaVersion\app\src\main\java\com\example\gotimejavaversion\MainActivity.java:34: error: cannot find symbol
            List<Restrictions> restrictionData = new CsvToBeanBuilder(FileReader("restrictions.csv"))
                                                                      ^
  symbol:   method FileReader(String)
  location: class MainActivity

我尝试将“new”放在 FileReader 前面,但当我这样做时,我得到了这个错误:

C:\Programming\Android\GoTimeJavaVersion\app\src\main\java\com\example\gotimejavaversion\MainActivity.java:35: error: cannot find symbol
                    .withType(Restrictions.class).build.parse();
                                                 ^
  symbol:   variable build
  location: class CsvToBeanBuilder

我的库中有 OpenCSV 和 beanutils,它们都在我的 build.gradle 中实现,并且我的文件 limits.csv 在我的应用程序的 src 文件夹中。我的 Restrictions 类也没有错误,并且遵循 OpenCSV 的 bean 设置。

我做错了什么?任何帮助表示赞赏,谢谢!

【问题讨论】:

    标签: java android javabeans filereader opencsv


    【解决方案1】:

    对 CsvToBeanBuilder 使用以下任何构造函数。您使用的构造函数无效:-

    CsvToBeanBuilder(CSVReader csvReader)
    CsvToBeanBuilder(Reader reader)
    

    示例:-

    CSVReader csvReader = new CSVReader(new FileReader("restrictions.csv"));
    List<Restrictions> restrictionData = new CsvToBeanBuilder(csvReader)
                    .withType(Restrictions.class)
                    .build()
                    .parse();
    

    【讨论】:

    • 嗨 Gaurav。所以,我不太明白。我不知道如何用我当前的代码实现您刚刚建议的内容,即看起来像什么。谢谢!
    • 谢谢高拉夫!我仍然遇到以下问题:构建是红色文本,当我运行时,我遇到了以前构建时遇到的类似错误:C:\Programming\Android\GoTimeJavaVersion\app\src\main\java\com\example\gotimejavaversion\MainActivity.java:41: error: cannot find symbol .withType(Restrictions.class).build.parse(); ^ symbol: variable build location: class CsvToBeanBuilder
    • 修复了错误^,请重试代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多