2016-10-15 7 views
0

Привет У меня есть CSV-файл, который выглядит следующим образом:Возврат строк из CSV

r1c1|r1c2|r1c3 
r2c1|r2c2|r2c3 

Как вы можете видеть, что это ограничивается символом «|»

В моем приложении я пытаюсь взорвать это, используя поток ввода. Вот мой код:

String line = ""; 
String cvsSplitBy = "|"; 


try { 
    File initialFile = new File(myfile.txt); 
    InputStream targetStream = new FileInputStream(initialFile); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(targetStream)); 

     while ((line = reader.readLine()) != null) { 
      String[] RowData = line.split(cvsSplitBy); 

      String c0 = RowData[0]; 
      String c1 = RowData[1]; 
      String c2 = RowData[2]; 

      Toast.makeText(mainactivity.this, c2, Toast.LENGTH_LONG).show(); 
     } 
}catch (IOException ex) { 
// handle exception 
} 

К сожалению, это, кажется, возвращает каждый символ в CSV как строку. Пример тоста выше возвращает 1, затем 2.

Любые идеи о том, как вернуть правильную колонку, кто угодно?

ответ

1

split() расколы строка соответствует вокруг данного регулярного выражения, поэтому использование специального символа (и вертикальной черты является одним из них) требует побег, чтобы лишить его «силу».

String cvsSplitBy = "\\|" 

Смотрите документы: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html