gpt4 book ai didi

java - 文件读/写错误?

转载 作者:行者123 更新时间:2023-12-01 13:49:06 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,写入文件,读取它,然后找到平均值:

     public static void main(String[] args) throws IOException {
writeToFile("C:\\scores.txt");
}
public static void writeToFile (String filename) throws IOException {
BufferedWriter outputWriter = new BufferedWriter(new FileWriter(filename));
Scanner sc = new Scanner(System.in);
int i=0;
int q=0;
while(i >=0&&q<=20) {
System.out.print("Enter Grade:");
i=sc.nextInt();
outputWriter.write(i);
outputWriter.newLine();
q++;
}
outputWriter.flush();
outputWriter.close();
processFile(filename);
}
public static void processFile (String filename) throws IOException, FileNotFoundException {

try (BufferedReader inputReader = new BufferedReader (new InputStreamReader(new FileInputStream(filename)))) {
String line;
int lines=0;
int intValue= 0;
int sum = 0;
while (( line = inputReader.readLine()) != null){
intValue = Integer.parseInt(line);
String sumStr;

while((sumStr = inputReader.readLine()) != null) {
sum = Integer.parseInt(sumStr);
intValue = sum + intValue;
lines++;
}
intValue=sum+intValue;

}
System.out.println(intValue/lines);
inputReader.close();
}
}
}

问题是,当我运行这个时,它到达 21 年级(应该在 20 年级结束)并给我这个错误:

  Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.parseInt(Integer.java:527)
at scorereaderwriter.ScoreReaderWriter.processFile(ScoreReaderWriter.java:48)
at scorereaderwriter.ScoreReaderWriter.writeToFile(ScoreReaderWriter.java:34)
at scorereaderwriter.ScoreReaderWriter.main(ScoreReaderWriter.java:18)
Java Result: 1

我在这里做错了什么?

最佳答案

您的程序一旦尝试运行 parseInt 就会失败,因为您的 inputReader.readLine() 没有返回任何内容。您可以做的是使用 inputReader.read() 来获取整数值。

例如:

int sum = 0;
while((sum = inputReader.read()) != -1) {
intValue = sum + intValue
}

这将使您不必读取文件、将整数转换为字符串,然后再次转换回整数。

编辑:另外,检查您的第一个 while 循环,它运行了 21 次,而不是 20 次。

关于java - 文件读/写错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20106291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com