Думай ООП. Вам необходимо создать класс Person
со свойствами name
, age
и height
.
public class Person {
private String name;
private String age;
private String height;
// Getter and setter methods...
}
Затем прочитайте файл CSV построчно, используя BufferedReader
. Для каждой строки вы хотите разделить строку, используя line.split(";");
, чтобы получить String[]
, содержащий токены.
Для линии теперь вы можете создать Person
из токенов;
Person person = new Person();
person.setName(tokens[0]);
person.setAge(tokens[1]);
person.setHeight(tokens[2]);
Обратите внимание, что предполагает положения столбцов. Если вы хотите удалить это предположение, вам нужно Map
заголовок позиции.
String headerLine = "NAME;AGE;HEIGHT";
String[] headers = headerLine.split(";");
Map<String,Integer> map = new HashMap<String,Integer>();
for (int i=0; i<headers.length; i++) {
map.put(headers[i], i);
}
Вы можете получить позицию столбца по его имени;
Person person = new Person();
person.setName(tokens[map.get("NAME")]);
person.setAge(tokens[map.get("AGE")]);
person.setHeight(tokens[map.get("HEIGHT")]);
Table
классы типа являются анти-паттернами. Они имеют тенденцию появляться, когда программист не может думать о терминах объектов. Я часто вижу Table
классы в унаследованных Java-приложениях, и это настоящая PITA для работы с ними. Не делай этого.