2013-10-31 54 views
0

我有一个文本( “Contacts.txt”)文件是这样的:如何使用扫描仪从Java文件读取?

佩德罗·梅伦德斯7823455555 9395554444 [email protected]

鲍勃·拉米雷斯8725551234 9452455543 [email protected]

路易斯·冈萨雷斯8907653456空[email protected]

是一个文本文件,我将节省的人的联系人信息。 (是对Android应用程序)

我一定要在保存此联系人信息类型的联系人列表(列表)。接触有以下变量:

  • 的firstName
  • lastName的
  • 手机
  • 办公电话
  • 电子邮件

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

我用这个:

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())); 
} 

但是,这并不工作。将信息保存在清单中的最佳方式是哪里?

感谢,

回答

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])) 

} 

我真的不知道你接触的构造是什么样子,因为你没有张贴,但我认为它的在您列出项目的顺序。

我还假设,所有的线条看起来一样,在他们都有问题,所有的数据如果没有这个解决方案会得到一个出界异常。

+0

我不认为in.next()会工作。 –

+0

感谢您的更正:) – Todoy

+0

感谢您的帮助,我做到了,但也有一个错误(NullPointerException)。但我认为你所做的是正确的。我将搜索以查找错误。谢谢! –

0

你想要做的是从文本中获取每行,将行分割为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); 
    } 
+0

感谢您的帮助,我做到了,但也有一个错误(NullPointerException)。但我认为你所做的是正确的。我将搜索以查找错误。谢谢! –