首页 > 解决方案 > 从 Java 中的 2 个文件中打印匹配信息

问题描述

我正在尝试编写一个程序来检查两个文件并打印这两个文件的共同内容。

文件 1 内容的示例是:

James 1
Cody 2
John 3

文件 2 内容的示例是:

1 Computer Science
2 Chemistry
3 Physics

所以控制台上打印的最终输出将是:

James Computer Science
Cody Chemistry
John Physics

到目前为止,这是我的代码中的内容:

public class Filereader {
    public static void main(String[] args) throws Exception {

    File file = new File("file.txt");
    File file2 = new File("file2.txt");
    BufferedReader reader = new BufferedReader(new FileReader(file));
    BufferedReader reader2 = new BufferedReader(new FileReader(file2));
    String st, st2;
    while ((st = reader.readLine()) != null) { 
         System.out.println(st);
    }
    while ((st2 = reader2.readLine()) != null) {
            System.out.println(st2);
    }
    reader.close();

    reader2.close();

    }
}

我无法弄清楚如何匹配文件内容,并通过匹配每个文件中的学生 ID 仅打印学生姓名和他们的专业。感谢所有的帮助。

标签: javafile

解决方案


您可以使用其他答案并对每个文件创建一个对象,例如数据库中的表。

public class Person{
   Long id;
   String name;
   //getters and setters
}
public class Course{
   Long id;
   String name;
   //getters and setters
}

他们可以更好地控制您的列,并且使用起来很简单。此外,您将使用 anArrayList<Person>和 anArrayList<Course>并且您的关系可以是对象内部的变量,例如courseIdPerson类或其他东西中。

if(person.getcourseId() == course.getId()){
   ...
}

他们如果匹配的是文件的第一个数字,则使用person.getId() == course.getId(). Ps:不要您的情况下使用split(" "),因为您可以拥有其他具有两个值的对象,即1 Computer Science.


推荐阅读