我有一个文本(“Contacts.txt”)文件,如下所示:
Pedro Melendez 7823455555 9395554444 myEmail@stack.com
Bob Ramirez 8725551234 9452455543 bob.ramirez@stack.com
LuisGonzález8907653456null luis.gonzalez@stack.com
是一个文本文件,我将保存人们的联系信息。 (适用于Android应用程序)
我必须将此联系人信息保存到联系人(列表)类型的列表中。联系人有以下变量:
如何使用扫描仪将信息保存在列表中的文本文件中?
我用过这个:
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()));
}
但这不起作用。将信息保存在列表中的最佳方法在哪里?
谢谢,
答案 0 :(得分: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]))
}
我真的不知道你的联系人构造函数是什么样的,因为你没有发布它,但我按照你列出的项目的顺序假设它。
我还假设所有的行看起来都是一样的,因为如果不是这个解决方案会得到一个超出范围的异常,它们都会有所有数据。
答案 1 :(得分: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);
}