作为任务的一部分,我被要求为一个图书管理员创建一个程序。有两个类:user和book。
用户类由字段组成:名字、姓氏和持有的图书数量。
book类由以下字段组成:title、authornameone和一个布尔“loan”。
该程序的一个特点是能够读取.txt文件,然后将.txt文件的不同部分转换为适当的对象。文本文件显示为:
5
Concurrent Programming
C. R. Snow
Concurrent Programming
Stephen J. Hartley
Java Gently
Judith Bishop
Petri Nets
Wolfgang Reisig
Finite Transition Systems
Andre Arnold
4
Anna Smith
Zoe Brown
John Williams
John Smith
格式如下:
最上面的数字(5)表示图书馆里的书的数量。
在这下面,接下来的10行基本上代表了5个book对象(我在book类中创建了一个二级book构造函数来简化这个w just title和author-假设这是正确的过程),例如并发编程c。r。斯诺-在书名下面加上作者姓名。
列表中的下一个数字(4)说明了库的用户数量。
在这下面,接下来的4行表示4个用户对象(这同样要求我创建第二个名为和姓为的用户构造函数)。
我已经通过
File file = new File("/Users/jakehumphreys/IdeaProjects/cw2/src/library.txt");
Scanner s = new Scanner(file);
然后将它们存储在类对象的arraylist中。
ArrayList<Object> lines = new ArrayList<>();
while(s.hasNextLine()){
lines.add(s.nextLine());
}
System.out.println(lines);
这是输出(如预期):
[5, Concurrent Programming, C.R.Snow, Concurrent Programming, Stephen J.Hartley, Java Gently, Judith Bishop, Petri Nets, Wolfgang Reisig, Finite TransitionSystems, Andre Arnold, 4, Anna Smith, Zoe Brown, John Williams, John Smith]
困扰我的问题是:
如何让扫描器(或适当的文件读取器)对列表进行相应的剖析,即仅将图书数量下的5对行捆绑在一起,以创建5个图书对象,然后将其添加到arraylist(我已经创建)。
这同样适用于下面的4个用户对象-它们最终需要在arraylist中结束。
我的一个想法是.txt列表中的int/numbers显然是作为分隔符存在的,所以也许我可以为filereader构造一个while循环,以便让它正确地阅读书籍等等。
或者在我读取了.txt文件之后,我需要对arraylist进行分区吗
任何帮助都将不胜感激,提前谢谢:)。
暂无答案!
目前还没有任何答案,快来回答吧!