NumberFormatException при использовании FileReader и StringTokenizer

У меня проблема со строкой "Office". Я получаю это: java.lang.NumberFormatException: Для входной строки: "Office:" Я чувствую, что мне нужно сделать что-то еще с парселином вниз в разделе токенизатора? Я на правильном пути? Я в основном пытаюсь прочитать из файла, чем рассчитать общий объем продаж и записать в другой файл. Это ошибка, которую я получаю, даже когда пытаюсь отобразить файл people.txt на экране вывода в моем графическом интерфейсе. Мне просто нужен небольшой совет, где искать, чтобы это исправить. Я посмотрел много вещей, но не подошел близко.

public class PersonReader {

    public static void main(String args[]) throws IOException {
        PersonReader reader = new PersonReader();
        List<person> people = reader.readPeople("people.txt");
        System.out.println(people);

    }

    public List<person> readPeople(String filename) throws IOException {

        File f = new File(filename);
        FileReader reader = new FileReader(f);
        BufferedReader breader = new BufferedReader(reader);

        List<person> people = new ArrayList<person>();

        String line = breader.readLine();
        while (line != null) {
            person p = null;

            try {
                p = parseLine(line);
            } catch (Exception e) {
                e.printStackTrace();
            }

            if (p == null) {
                System.out.println("This row is bad." + line);
            } else {
                people.add(p);
            }
            line = breader.readLine();
        }

        return people;
    }

    private static person parseLine(String line) {

        int repID;
        String firstName;
        String lastName;
        double books;
        double paper;
        double office;
        String district;
        String contact;
        String next;

        StringTokenizer st = new StringTokenizer(line, ", ");

        repID = Integer.parseInt(st.nextToken().trim());
        firstName = st.nextToken().trim();
        lastName = st.nextToken().trim();
        books = Double.parseDouble(st.nextToken().trim());
        parseLine(line);
        paper = Double.parseDouble(st.nextToken().trim());
        parseLine(line);
        office = Double.parseDouble(st.nextToken().trim());
        parseLine(line);
        district = st.nextToken().trim();
        parseLine(line);
        contact = st.nextToken().trim();
        parseLine(line);


        if (repID < 1) {
            return null;
        }
        if (firstName.length() == 0) {
            return null;
        }
        if (lastName.length() == 0) {
            return null;
        }
        if (books < 1) {
            return null;
        }
        if (paper < 1) {
            return null;
        }
        if (office < 1) {
            return null;
        }
        if (district.length() == 0) {
            return null;
        }
        if (contact.length() == 0) {
            return null;
        }

        person p = new person();
        p.setRepID(repID);
        p.setFirstName(firstName);
        p.setLastName(lastName);
        p.setBooks(books);
        p.setPaper(paper);
        p.setOffice(office);
        p.setDistrict(district);
        p.setContact(contact);
        return p;

    }



}

0 ответов

Другие вопросы по тегам