使用两个数组搜索文件

时间:2015-12-07 21:53:20

标签: java arrays file bufferedreader

我有一个文件,我需要能够按ID号搜索学生的文本文件,并通过这样做来检索他们的分数。文本文件设置如下(长号为学生ID,第二个为分数):

66440   63
50940   6
71394   18
84789   77
41527   60
86258   30
51632   59

等等。到目前为止这是我的代码。它尚未完成,我需要它来搜索第一个数组(学生)并检索第二个数组(分数):

public static void main(String[] args) throws FileNotFoundException, IOException {

    try (BufferedReader br = new BufferedReader(new FileReader("scores.txt")))
            { 
            String sCurrentLine;
            String first = "Student ID: ";
            String second = "Score: ";
            while ((sCurrentLine = br.readLine()) != null) {


                String[] information = sCurrentLine.split(" ");
                String StudentID = information[0];
                String Score = information[1];
                Scanner input = new Scanner(System.in);
                System.out.print("Enter a user ID: ");
                String userID = input.nextLine();
                if (StudentID = userID){
                    System.out.println(Score);  
                }
    }}
}}

1 个答案:

答案 0 :(得分:0)

BufferedReader实现AutoCloseable,因为1.7可以自动关闭作为try的资源。 我同意Emz的观点,首先你应该将整个文件加载到内存中并在搜索之后。您可以使用签名Map<String,List<String>>声明hashMap,该签名作为密钥将具有学生ID并且作为所有分数的值。检索特定studdentId的分数将很快map.get(studentId). In循环您可以读取尝试从文件中检索分数的输入,或者您可以将某些特定字符编码为主函数的停止键。