Как пропустить строку из файла CSV - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь создать тренд с помощью CSV-файла и хочу пропустить строку с первого по четвертый.Можете ли вы сказать мне, как это сделать?

// мой CSV-файл:

Чо 1647 Растяжение: литье Единица: Drive Chill Roll: скорость фактическое значение

Дата; Время; Значение; Единица измерения

22.01.2019; 05: 54: 08; 13.05; м / мин

22.01.2019; 07: 29: 30; 19,65; м / мин

22.01.2019; 07: 29: 31; 15,35; м / мин

22.01.2019; 07: 29: 32; 8,55; м / мин

22.01.2019; 07: 29: 32; 12,55; м / мин

22.01.2019; 07: 29: 33; 12,96; м / мин

@Override
    public void start(Stage stage) throws Exception
    {
        stage.setTitle("CSV Chart");
        final NumberAxis yAxis = new NumberAxis();
        final CategoryAxis xAxis = new CategoryAxis();

        final LineChart<String, Number> lineChart = new LineChart<>(xAxis, yAxis);
        yAxis.setLabel("Actual Value");
        xAxis.setLabel("Time Value");
        lineChart.setTitle("PVSS Trend");

        XYChart.Series series = new XYChart.Series();

        series.setName("Actual Value");

        try (CSVReader dataReader = new CSVReader(new FileReader("C:\\190122_cr_speed.csv"),';'))
        {   
            //String line01 = Files.readAllLines(Paths.get("C:\\190122_cr_speed.csv")).get(0);
            //System.out.print(line01);

            String[] nextLine; int i = 0; int j =0;
            while ((nextLine = dataReader.readNext()) != null)
            {
                String year = String.valueOf(nextLine[0]);
                String time = String.valueOf(nextLine[1]);
                float pvssvalue = Float.parseFloat(nextLine[2]);
                String unit = String.valueOf(nextLine[3]);

                series.getData().add(new XYChart.Data(year+time, pvssvalue));   
            }
        }

        lineChart.getData().addAll(series);
        Scene scene = new Scene(lineChart, 960, 540);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я не уверен в этом, но вы можете быть более талантливым программистом Java, чем я, но я не знаю, почему вы используете CSVReader вместо Scanner (Scanner API) .Сканер имеет встроенную функцию nextLine () и может читать файлы .csv.

0 голосов
/ 29 января 2019

Чтобы пропустить первые четыре строки, используйте счетчик и continue

while ((nextLine = dataReader.readNext()) != null)
{
     if (counter++ < 4)
         continue;
     ....
}

, возможно, вы можете использовать одну из ваших неиспользованных переменных i или j?

...