有没有办法从Java中的单个文本文件中编写和读取两个链接列表?

时间:2016-12-30 21:01:27

标签: java input import output writing

我正在用java编写一个程序,它涉及保存用户名和他们的高分。得分将保存在偶数行上,名称将保存在奇数行上。例如:

Horace
2203
Rufus
435
Bertie
4725
Lawrence
174
Kane
...

这可能吗?是否需要导入任何库?文本文件是否需要在eclipse中的项目内?

非常感谢你。

到目前为止,我已创建了两个列表:

LinkedList<String> listName = new LinkedList<String>();
LinkedList<Integer> listScore = new LinkedList<Integer>();

并将数据保存到他们:

listName.add(answer);
listScore.add(score);

2 个答案:

答案 0 :(得分:2)

这是可能的,但从概念上讲:这是错误的方法。

您看,您所拥有的信息属于一起。我猜你想要创造

A)List<String> players

B)List<Integer> scores

例如。

然后&#34;相同的索引&#34;意思是:球员X的得分

不要这样做。而是创建一个具有两个属性(名称和分数)的Player类;然后使用/填充List<Player>

但不仅仅是你如何建模数据的问题;事情很简单:

open your file
loop:
  read one line --- which should contain a String (name)
  read one line --- which should contain a number

从伪代码中可以看出;那里真的没有魔力。您知道您的数据所具有的结构;所以只需使用它!

答案 1 :(得分:1)

您可以使用以下方法: -
1)逐行读取文件 2)如果它是奇数,假设它是用户,则输入用户列表 3)如果是偶数,假设它是得分,则将其列入分数列表 4)使用Linked List来维护顺序,因此两个列表中的任何索引都将保存相关数据。

您可以在以下示例的基础上构建 -

public static void main(String[] args){
        //input.txt file is kept at the same place as that of class ReadFile
        File file=new File(ReadFile.class.getResource("input.txt").getFile());
        //User List
        List<String> userList=new LinkedList<String>();
        //Score List
        List<String> scoreList=new LinkedList<String>();
        int count =1;
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String sCurrentLine;
            while ((sCurrentLine = br.readLine()) != null) {
                if(count%2==0){
                    //Line is even
                    scoreList.add(sCurrentLine);
                }else{
                    //Line is odd
                    userList.add(sCurrentLine);
                }
                count++;
            }
        System.out.println("Printing User List:"+userList+"\n\nPrinting Score List:"+scoreList);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }