0

我有一个像这样的文本(“Contacts.txt”)文件:

佩德罗梅伦德斯 7823455555 9395554444 myEmail@stack.com

鲍勃·拉米雷斯 8725551234 9452455543 bob.ramirez@stack.com

路易斯·冈萨雷斯 8907653456 null luis.gonzalez@stack.com

是一个文本文件,我将在其中保存人们的联系信息。(适用于安卓应用程序)

我必须将此联系人信息保存到联系人(列表)类型的列表中。联系人具有以下变量:

  • 手机
  • 工作电话
  • 电子邮件

如何使用扫描仪将信息保存在列表中的文本文件中?

我用这个:

Scanner in = new Scanner(new File("Contacts.txt");

while(in.hasNextLine()){
        this.contactList.add(new Contact(in.next(), in.next(), in.next(), in.next(), in.next()));
}

但这不起作用。将信息保存在列表中的最佳方式在哪里?

谢谢,

4

2 回答 2

5

您需要在建立新联系人之前解析该行

while(in.hasNextLine()){
    String line= in.nextLine();
    String[] tokens = line.split(" ");
    this.contactList.add(new Contact(tokens[0], tokens[1], tokens[2], tokens[3],tokens[4]))

}

我真的不知道您的联系构造函数是什么样子,因为您没有发布它,但我认为它是按照您列出项目的顺序。

我还假设所有的行看起来都一样,因为如果不是这个解决方案将得到一个超出范围的异常,它们都具有所有有问题的数据。

于 2013-10-31T14:20:47.560 回答
0

您想要做的是从文本中获取每一行,将行拆分为 a space(因为行的每个部分都由空格分隔),使用您获得的值创建一个对象并将该对象保存到列表中。

File file = new File("Contacts.txt");
    Scanner in= new Scanner(file);
    while(in.hasNextLine())
    {
         String line = in.nextLine();
         String tokens[] = line.split(" ");
         Contact c = new Contact (tokens[0],tokens[1],tokens[2],tokens[3],tokens[4]) //assume your object is of Contact class
         this.contactList.add(c);
    }
于 2013-10-31T14:21:09.140 回答