Ошибка OpenCSV с использованием CsvToBeanBuilder(FileReader())

Я использую OpenCSV в проекте Android Java с IntelliJ.

Я пытаюсь запустить следующий код, чтобы создать 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, где они говорят:

Здесь мы просто называем поля идентично именам заголовков. После этого чтение представляет собой простую работу:

Компоненты списка = новый 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

Я попытался поставить «новое» перед 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, а мой файл ограничения.csv находится в папке src моего приложения. В моем классе Restrictions также нет ошибок, и он полностью соответствует настройке bean-компонента OpenCSV.

Что я делаю не так? Любая помощь приветствуется, спасибо!


person InjeffiniteIntegral    schedule 16.10.2020    source источник


Ответы (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();
person Gaurav Dhiman    schedule 16.10.2020
comment
Привет, Гаурав. Так вот, я не совсем понимаю. Я не знаю, как реализовать то, что вы только что предложили, с моим текущим кодом, то есть как это выглядит. Благодарю вас! - person InjeffiniteIntegral; 16.10.2020
comment
Спасибо Гаурав! У меня все еще есть следующая проблема: сборка выделена красным текстом, и когда я запускаю, я получаю аналогичную ошибку, которую я получал при сборке раньше: 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 - person InjeffiniteIntegral; 16.10.2020
comment
Исправлена ​​ошибка ^, попробуйте код еще раз - person AjCodez; 09.05.2021