本质上,该程序的目的是将学生信息写入文件并从同一文件中读取。该程序包含一个 if 语句,用于判断学生是否处于良好的信誉或学术试用期,每个文件都有各自的文件(goodstanding.txt 和 probation.txt)。如果我注释掉 goodstanding.txt 的读取逻辑,程序工作文件,但对我来说,除了文件路径之外,它们似乎几乎相同,显然。我查看了其他问题,但其中大多数似乎与错误的类型转换有关。它抛出的具体错误NumberFormatException For input string: ""在线ID = Integer.parseInt(array[0]);
写逻辑如下:
if(GPA >= 2.0) //If GPA >= 2.0, write to good standing file. This is
identical to probation writer, but causes an issue somewhere
{
String result = ID + "," + fname + " " + lname + "," + GPA;
OutputStream out = new BufferedOutputStream(Files.newOutputStream(good,
StandardOpenOption.CREATE));
BufferedWriter wt = new BufferedWriter(new OutputStreamWriter(out));
wt.write(result, 0, result.length()); //Write to file from position 0 to
length
wt.newLine();
System.out.println("Please enter next WIN or 999 to quit: ");
ID = input.nextInt();
input.nextLine();
wt.close();
}
if(GPA < 2.0) //If GPA < 2.0, write to probation file {
String result = ID + "," + fname + " " + lname + "," + GPA;
OutputStream out = new
BufferedOutputStream(Files.newOutputStream(probation,
StandardOpenOption.CREATE));
BufferedWriter wt = new BufferedWriter(new OutputStreamWriter(out));
wt.write(result, 0, result.length());
wt.newLine();
System.out.println("Please enter next WIN or 999 to quit: ");
ID = input.nextInt();
input.nextLine();
wt.close();
}
和读取逻辑:
try
{
while(line != null)
{
array = line.split(",");
ID = Integer.parseInt(array[0]);
name = array[1];
GPA = Double.parseDouble(array[2]);
double ahead = GPA - 2;
System.out.println("WIN: " + ID + " | " + " Name: " + name + " |" + " GPA
= " + GPA + " | Ahead by " + ahead);
line = reader.readLine();
}
}
我也尝试在 ID 上使用 trim() 方法,但异常仍然存在。是否有一个我需要阅读更多的概念来解释这一点?
烙印99
相关分类