java—将两个不同类的对象从.txt文件提取到它们关联的arraylist中

neskvpey  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(256)

作为任务的一部分,我被要求为一个图书管理员创建一个程序。有两个类: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进行分区吗
任何帮助都将不胜感激,提前谢谢:)。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题