Java 将从文件读取的数字添加到初始化为0的totalAmount,会产生意外结果

Java 将从文件读取的数字添加到初始化为0的totalAmount,会产生意外结果,java,Java,我有一个小的家庭作业应用程序,它将从5到77的随机数写入一个文本文件,然后是一个单独的应用程序,它读取文件并对数字进行合计 这是我将数字写入文本文件的代码 Random r = new Random(); int min = 5; int max = 77; int[]randomNumbers = new int[1000]; try { PrintWriter pw = new PrintWriter(new BufferedWrit

我有一个小的家庭作业应用程序,它将从5到77的随机数写入一个文本文件,然后是一个单独的应用程序,它读取文件并对数字进行合计

这是我将数字写入文本文件的代码

Random r = new Random();
    int min = 5;
    int max = 77;
    int[]randomNumbers = new int[1000];

    try
    {
        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("myTextFile.txt")), true);
        for(int i = 0; i < randomNumbers.length; i++)
        {
            randomNumbers[i] = r.nextInt(max - min + 1) + min;
            pw.println(randomNumbers[i]);
        }

    }
    catch(IOException io){} 
但是,输出从29633开始,并显示一直到42328


为什么我会得到这个结果。。。只是试图理解我的代码的错误部分

您正在打印的是
totalNumbers
,而不是将值累积到(
totalAmount
)中的变量,该变量是一个未初始化的变量。其内容未定义且不可预测

System.out.println(totalNumbers);
// Should be
System.out.println(totalAmount);

您需要打印文件中的每个数字,还是只打印总数

如果需要打印每个数字,total应用程序中的
while
循环应该如下所示

    while((s = buffy.readLine()) != null) {
        int number = Integer.parseInt(s);
        totalAmount += number;
        System.out.println(number); // changed the variable here
        }
但是,如果您只需要打印出最终结果,则需要将
System.out.println()
行移到
循环之外(并且仍然将变量更改为totalAmount

    while((s = buffy.readLine()) != null) {
        int number = Integer.parseInt(s);
        totalAmount += number;
        }
    System.out.println(totalAmount); // changed the variable here, and moved it outside the loop

谢谢。即使纠正了这个小错误,我仍然得到了较高的数字。我希望它应该从一个随机数开始,例如40,然后在下一个循环中将它添加到totalAmount,并将一个新的随机数添加到totalAmount。
    while((s = buffy.readLine()) != null) {
        int number = Integer.parseInt(s);
        totalAmount += number;
        }
    System.out.println(totalAmount); // changed the variable here, and moved it outside the loop