из файла в массив объектов

 
0
 
Java
ava
123456789igor | 23.03.2013, 19:29
Добрый день.
Нужно из файла переписать данные в массив объектов.

public class read {
    String line;
    ArrayList<User> mass = new ArrayList<User>();
    public void reader() throws IOException {
    BufferedReader readFromFile = new BufferedReader(new FileReader("/Users/macbook/NetBeansProjects/bd1/src/bd1/text.txt"));
    while ((line = readFromFile.readLine()) != null) {
    }    
    readFromFile.close();
    }
}
public class User {
    public String key;
    public int chislo;
}

В простой массив записать не проблема, а как в такой, как у меня не могу понять. Нужно построчно из файла записать данные в массив, в "key". Как такое сделать? Прошу помощи(
Comments (2)
ava
dorogoyIV | 23.03.2013, 20:39 #

    while ((line = readFromFile.readLine()) != null) {
        String [] s = line.split(" ");
        String key = s [0];
        int chislo = Integer.parseInt(s [1]);
        User user = new User(key, chislo);
        mass.add(user);
    }

ava
wstarcev | 29.03.2013, 21:06 #
Можно еще сделать статический конструктор User из строки, тогда код до неприличия сократится. Важно незабыть вернуть Exception если в конструктор инициализируют хламом.


    while ((line = readFromFile.readLine()) != null)
        try {
            mass.add(User.fromString(line));
        } catch (Exception e) {
            e.printStackTrace();
        }

public class User {
    private int chislo;
    private String line;

    public User(String s, int i){
        line = s;
        chislo = i;
    }

    static public User fromString(String line) throws Exception {
        if ( !line.contains(" ") ) throw new Exception("Malformed string");
        String[] s = line.split(" ");
        return new User(
            s[0],
            Integer.parseInt(s[1])
        );
    }
}
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit