2015-10-11 5 views
0

Итак, я использую OpenCSV для проекта, над которым я работаю, и до сих пор у меня все в порядке, мне удалось прочитать файл CSV, а также написать одно , Поскольку я впервые использовал OpenCSV, я решил использовать учебник, который я нашел в Интернете, и немного адаптировать его. Итак, я сделал метод, называемый ReadData(). Я могу читать CSV и печатать его на консоли отлично, но я хочу получить доступ к массиву nextLine за пределами метода.Как использовать массив nextLine OpenCSV

public void ReadData(String filelocation) { 
    filelocation = System.getProperty("user.dir")+"/data/"+filelocation; 
    try { 
     CSVReader savereader = new CSVReader(new FileReader(filelocation), ',', '"', 0); 
     String[] nextLine; 
      while((nextLine = savereader.readNext()) != null) { 
       if(nextLine != null) { 
        //Make sure everything went through 
        System.out.println("Data Read. Results:"); 
        System.out.println(Arrays.toString(nextLine)); 
       } 
      } 
    } catch (FileNotFoundException ex) { 
     //Handle Exception 
    } catch (IOException ex) { 
     //Handle Exception 
    } 
} 

Этот метод считывает данные из файла, который я указываю. Но я хочу иметь возможность делать что-то с этими данными. Например, я хотел бы взять nextLine [0] и посмотреть, пуст ли он, если это так, сделать одно. Если это не так, я хочу сделать что-то еще, что сделало бы что-то равным.

Спасибо заранее, и я надеюсь, что я был достаточно ясен о том, чего я пытаюсь выполнить!

С уважением,

Джонни

ответ

0

Проблема у вас есть проблема Java не opencsv. Проблема в том, что nextline является локальным для метода - в вашем случае локально для блока try. Таким образом, все, что находится вне метода, не может ссылаться на следующую строку.

Вы можете сделать nextline локальным для метода вместо try и вернуть метод nextline (изменение от void до String []), но вы вернетесь только к последней строке.

Для того, что вы хотите (чтобы проверить все данные после его чтения), необходимо сохранить каждую строку [], которую вы читаете в списке, и вернуть метод. Но если вы собираетесь это сделать, вы должны просто использовать метод readAll CSVReader (http://opencsv.sourceforge.net/apidocs/index.html). Будьте осторожны, хотя если вы это сделаете, вы рискуете OutOfMemoryException при работе с большими файлами.

Надеюсь, что это поможет.

+0

Спасибо! Это очень помогло! – TxtStudios

Смежные вопросы