2011-01-05 3 views
1

У меня есть CSV-файл, как это:как читать эти конкретные строки в Java

i,0    <-- 1st line 
f,1,2,3   <-- 2nd line 
s,0,1,2,3,4,5,6 <-- 3rd line 
0,1,A 
0,5,B 
1,1,A 
1,3,B 
2,6,A 
2,4,B 
3,6,A 
3,4,B 
4,6,A 
4,4,B 
5,1,A 
5,5,B 
6,6,A 
6,2,B 

как я прочитал эти строки в 4-х различных массива/ArrayList в Java?
выход я хочу что-то вроде этого:

  • первая линия: 0 [первый массив]
  • вторая линия: 1 2 3 [второй массив] -> только одна линия, но длина маркера неизвестно
  • 3-я строка: 0 1 2 3 4 5 6 [3-я матрица] -> всего 1 строка, но длина токена неизвестна
  • остальная часть линии: -> исправлено 3 символа, но номер строки неизвестен
    0 1 A
    0 5 B
    1 3 B
    2 6 А
    2 4 B
    3 6 А
    3 4 B
    4 6 А
    4 4 B
    5 1 А
    5 5 B
    6 2 Б

не может получить это право с комбинацией сканера и включение случае conditi на ..

ответ

1

Я бы не использовал switch. Просто прочитайте файл по строкам. Если файл создается (или вы в противном случае убедитесь, что это правильно), чем вы могли бы прочитать его как

reader = new BufferedReader(new FileReader(...)); 
array1 = readFirstLine(reader); 
array2 = readSecondLine(reader); 
array3 = readThirdLine(reader); 
// and so on 

и реализовать каждый read... метод для обработки одного формата строки.

Update: методы чтения может выглядеть

private String[] readFirstLine(BufferedReader reader) { 
    String line = reader.readLine(); 
    String[] fields = line.split(","); 
    return fields; 
} 
+0

как реализовать каждый метод чтения для обработки одного формата строки? – gin

1

Вы можете использовать Scanner's nextLine, чтобы прочитать строки. Поскольку вы специально хотите, чтобы 1, 2 и 3 строки принадлежали 1-му, 2-му и 3-му массивам соответственно, вы можете вызывать чтение 3 раза, а затем использовать метод Stringдля заполнения массива. Как только вы закончите, вы можете создать цикл и заполнить arraylist так, как вы хотите.

Итак, в основном: чтение и разделение (для каждой из первых трех строк), а затем чтение и заполнение в цикле для остальной части файла.

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