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