如何将 .txt 文件中的数据读入 ArrayList 以创建 objects
How to read data from a .txt file into an ArrayList to create objects
我设计了一个程序,可以从两个文本文件文档中读取信息(客户和课程)并将它们放入各自的 ArrayList 中。
例如,课程数据如下所示:
output.format("%s;%s;%s;%.2f;%s;%s;%s;%s;%b;%d;%s\r\n","Online","Java1","Davis",125.00," 1/1/2015"," 2/1/2015"," programming"," UTA ", true,12," Jones");
注意客户的名字 "Jones" 放在数据字符串的末尾,这样我就知道哪个课程去哪个客户。
客户数据如下所示:
output.format("%s;%d;%s;%s;%s;%d;%d;%s\r\n","Jones",786,"Cooper","Arlington","Texas",76019,12345,"student");
注意 customerType
放在数据字符串的末尾。
第一个文件被称为 customers.txt 我使用 readCustomers
方法,位于我的测试用例中,它读取 customers.txt 文件,使用数据创建客户,并将他们添加到名为 customerList
.
的 ArrayList 中
ArrayList<Customer> customerList = new ArrayList<Customer>();
第二个文件称为 courses.txt 我使用 readCourses
方法,也位于我的测试用例中)读取文件,创建使用数据的课程,最后将课程添加到他们的 respective/correct 客户。我利用另一个名为 courseList
的 ArrayList 来实现这一点。
ArrayList<Course> courseList = new ArrayList<Course>();
我在这个程序中还有其他 7 个 classes:Date,Time,Customer,Course,OnLineCourse,InClassCourse,Invoice(interface)。
在客户加载各自的客户后,名为 generateInvoice
的方法调用 class customer
中的方法 createInvoice
计算每个客户的发票并最终打印它输出到标题 名称、帐户和总计
下的 dialog box
我的问题是我不知道如何从 customers.txt
文件创建新客户并将其添加到 customerList
我对 readCustomers
方法的尝试如下所示:
public static void readCustomers()
{
Scanner input;
String sentence;
String values[];
try
{
input = new Scanner(new File("customer.txt"));
while(input.hasNext())
{
sentence = input.nextLine();
values = sentence.split(";");
for(Customer c:customerList)
{
if((c.getName().equals(values[9])))
{
customerList.add(new Customer(values[0],createAddress(values[1]),Integer.parseInt(values[2])));
}
}
}
}
//我的程序中有一个catch块
首先,你必须确保 "customer.txt" 文件在正确的位置,如果你有 FileNotFoundException
...
然后上面代码中的几件事:
当我读客户专线的例子时,我统计了11个属性。我想知道你在 if((c.getName().equals(values[9])))
中测试了什么;看起来不像客户的名字。
您正在阅读列表 customerList
,其中 - 此处猜测 - 包含仅设置名称的 Customer
列表,并且您想要创建 Customer
bean 以及在文件中找到的附加信息。
如果这是意图,
您需要创建另一个列表和add
一个新的Customer
实例并使用从文件中读取的属性进行初始化.函数 readCustomers()
应该 return 新的 List<Customer>
.
或者您想要更新 customerList
中的Customer
bean 实例。但在这种情况下,您没有什么可添加到列表中的。您只需要获取每个 bean 实例,设置属性,然后继续。在函数结束时,customerList
应更新。
我设计了一个程序,可以从两个文本文件文档中读取信息(客户和课程)并将它们放入各自的 ArrayList 中。 例如,课程数据如下所示:
output.format("%s;%s;%s;%.2f;%s;%s;%s;%s;%b;%d;%s\r\n","Online","Java1","Davis",125.00," 1/1/2015"," 2/1/2015"," programming"," UTA ", true,12," Jones");
注意客户的名字 "Jones" 放在数据字符串的末尾,这样我就知道哪个课程去哪个客户。
客户数据如下所示:
output.format("%s;%d;%s;%s;%s;%d;%d;%s\r\n","Jones",786,"Cooper","Arlington","Texas",76019,12345,"student");
注意 customerType
放在数据字符串的末尾。
第一个文件被称为 customers.txt 我使用 readCustomers
方法,位于我的测试用例中,它读取 customers.txt 文件,使用数据创建客户,并将他们添加到名为 customerList
.
ArrayList<Customer> customerList = new ArrayList<Customer>();
第二个文件称为 courses.txt 我使用 readCourses
方法,也位于我的测试用例中)读取文件,创建使用数据的课程,最后将课程添加到他们的 respective/correct 客户。我利用另一个名为 courseList
的 ArrayList 来实现这一点。
ArrayList<Course> courseList = new ArrayList<Course>();
我在这个程序中还有其他 7 个 classes:Date,Time,Customer,Course,OnLineCourse,InClassCourse,Invoice(interface)。
在客户加载各自的客户后,名为 generateInvoice
的方法调用 class customer
中的方法 createInvoice
计算每个客户的发票并最终打印它输出到标题 名称、帐户和总计
dialog box
我的问题是我不知道如何从 customers.txt
文件创建新客户并将其添加到 customerList
我对 readCustomers
方法的尝试如下所示:
public static void readCustomers()
{
Scanner input;
String sentence;
String values[];
try
{
input = new Scanner(new File("customer.txt"));
while(input.hasNext())
{
sentence = input.nextLine();
values = sentence.split(";");
for(Customer c:customerList)
{
if((c.getName().equals(values[9])))
{
customerList.add(new Customer(values[0],createAddress(values[1]),Integer.parseInt(values[2])));
}
}
}
}
//我的程序中有一个catch块
首先,你必须确保 "customer.txt" 文件在正确的位置,如果你有 FileNotFoundException
...
然后上面代码中的几件事:
当我读客户专线的例子时,我统计了11个属性。我想知道你在
if((c.getName().equals(values[9])))
中测试了什么;看起来不像客户的名字。您正在阅读列表
customerList
,其中 - 此处猜测 - 包含仅设置名称的Customer
列表,并且您想要创建Customer
bean 以及在文件中找到的附加信息。
如果这是意图,
您需要创建另一个列表和
add
一个新的Customer
实例并使用从文件中读取的属性进行初始化.函数readCustomers()
应该 return 新的List<Customer>
.或者您想要更新
customerList
中的Customer
bean 实例。但在这种情况下,您没有什么可添加到列表中的。您只需要获取每个 bean 实例,设置属性,然后继续。在函数结束时,customerList
应更新。