Java Swing使用文本文件

时间:2018-04-16 17:33:54

标签: java swing arraylist java.util.scanner jtextfield

我正在尝试使用swing创建一个Contacts Book,我在使用文件中的数据填充文本字段时遇到了问题。

我有名字,姓氏,地址和电话号码(字符串)的方框,文本文件的结构如下:

Name
Surname
Address
Phone
Name
Surname
Address
Phone
...

我有一个ArrayList来保存联系人,当我使用contacts.add(String,String,String,String)而不是从文件中读取数据时,我成功地在TextFields中显示数据。

我试过这个从文件中读取,但它似乎不起作用。

尝试{

    this.myFile = new File("contacts.txt");
    this.scan = new Scanner(myFile);

    while (scan.hasNext()) {

        contact = new Contact(scan.next(), scan.next(), scan.next(), scan.next());
        contacts.add(contact);

    }
}   
catch (InputMismatchException e) {
    System.err.println("Invalid");
}
catch (FileNotFoundException e) {
    System.err.println("Not found");
}
finally {
    if (scan != null) {
        scan.close();
    }
    else {
        System.out.println("empty");
    }
}

使用数据库会更容易/更好吗? 感谢

1 个答案:

答案 0 :(得分:0)

您只检查下一行,但在第一行之后尝试读取下三行而不检查。

scan.next();// reads until next token

试试这个

scanner.nextLine();//read until the end of line. 

您应该在每次扫描之前检查逻辑,并在4次扫描之间创建新的联系对象以存储信息。