2016-09-24 3 views
1

У меня есть данные потоковой передачи акселерометра и гироскопа, которые сохраняются в папке «Загрузить». Я хочу прочитать все данные или по очереди как поток данных в реальном времени, но я не могу выйти за пределы первой строки.Чтение потоковых данных из csv с использованием OpenCSV

try { 
    CSVReader reader = newCSVReader(newFileReader(path.getAbsoluteFile())); 
    { 
      List<String[]>allRows = reader.readAll(); 
      for (String[]row :allRows) 
      Log.i(TAG1,Arrays.toString(row)); 
      } 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

на выходе только первая линия печатается. Мне нужно прочитать каждую строку, чтобы я мог продолжить работу.

+0

Какую версию openCSV вы используете? Известна проблема с чтением из Streams в версиях 3.0-3.4. Обновите версию 3.8 и попробуйте. –

+0

@PeterSmith Я использую 3.8 версию Opencsv. На самом деле я пытаюсь читать данные потока в реальном времени, для этого мне придется использовать потоки. – AlphabateCoder

ответ

1

Int документации показаны два различных способа сделать это:

1- итератора образец стиля:

CSVReader reader = new CSVReader(new  FileReader("yourfile.csv")); 
String [] nextLine; 
while ((nextLine = reader.readNext()) != null) 
{ 
    // nextLine[] is an array of values from the line 
    System.out.println(nextLine[0] + nextLine[1] + "etc..."); 
} 

2- С Список:

CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); 
List<String[]> myEntries = reader.readAll(); 

for(String[] item : myEntries) 
    System.out.println(item); 

Так что, если какой-либо из в этом примере показано более одной строки, проверьте, содержит ли файл только одну строку, возможно, вы записываете все свои данные в файл все в первой строке или что-то в этом роде.

+0

Я пробовал в обоих направлениях, но не более того, что печатается первая строка. Есть тысячи строк, когда данные передают 50 строк в секунду. – AlphabateCoder

+0

теперь я могу читать данные, на самом деле раньше я поставил выше код перед исполнением файла. Все еще частичные данные считываются, они хотят считывать данные в реальном времени по мере потоковой передачи. – AlphabateCoder

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