gpt4 book ai didi

java - 读取文件返回 java.util.NoSuchElementException 错误

转载 作者:行者123 更新时间:2023-11-30 03:10:45 25 4
gpt4 key购买 nike

好吧,作为挑战的一部分,我正在用 Java 编写一个程序,以估计如果 5 个瓶盖中有 1 个获得奖品,您需要打开才能赢得奖品的平均瓶盖数量。作为挑战的一部分,我必须将试验数据写入文件并将其读回以计算平均值。第一部分很简单,但我一生都无法弄清楚为什么它拒绝读回文件。每次我尝试读取文件时,它都会抛出 no such element 异常。我讨厌成为那种“嘿,我的代码有什么问题吗?”的人。但我真的没有其他地方可以问,这真的开始让我恼火。这是代码:

package calculations;

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

public class BottleCapPrize {
static int randomRange (int min, int max){

int range = (max - min)+1;
return (int)(Math.random() * range) + min;
//simple bit of code to return a random number between min and max, inclusively.
}

public static void main(String[] args) throws IOException{
File text = new File("cap.txt");

PrintWriter outFile = new PrintWriter(text);

Scanner in = new Scanner(System.in);

System.out.print("Please enter the number of trials: ");
int trials = in.nextInt();
boolean won = false;
int numberoftries = 1;
int caps;
while(trials>0){

while(won==false){
caps = randomRange(1,5);

if(caps == 1){
won = true;
}else{
numberoftries +=1;
}
}
won = false;
outFile.println(numberoftries);
trials-=1;
numberoftries=1;
}

int total=0;


Scanner infile = new Scanner(text);

System.out.println(infile.next());

while(infile.hasNextInt()){

total += infile.nextInt();
System.out.println(total);

}

System.out.println((double)total/(double)trials);

outFile.close();
infile.close();

}

}

感谢您的帮助。

编辑:我很抱歉没有早点包含此内容

Please enter the number of trials: 5
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at calculations.BottleCapPrize.main(BottleCapPrize.java:51)

问题似乎出在这一行“System.out.println(infile.next());”

我还忘了提及它正确写入文件。

最佳答案

关闭许多 Writer 流(包括 PrintWriter)会导致实际写入文件的操作。您当前打开一个(我假设)空文件,然后在完成写入操作之前(也就是在使用新文本更新文件之前)读取它。

关于java - 读取文件返回 java.util.NoSuchElementException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685975/

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