java - 将从文件读取的数字添加到初始化为 0 的totalAmount 中,给出意外的结果

标签 java

我有一个小型作业应用程序,它将 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){} 

这是我用于读取文件并总计金额的代码...

int totalAmount = 0;

public void run()
{
    try
    {
        BufferedReader buffy = new BufferedReader(new FileReader("myTextFile.txt"));
        String s;

        while((s = buffy.readLine()) != null)
        {
            int number = Integer.parseInt(s);
            totalAmount += number;
            System.out.println(totalNumbers);

        }



    }
    catch(IOException io){}
}

输出以 29633 开头,一直显示到 42328

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

最佳答案

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

如果您需要打印每个数字,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() 行移到 while 循环之外(并且仍然将变量更改为 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

关于java - 将从文件读取的数字添加到初始化为 0 的totalAmount 中,给出意外的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923909/

相关文章:

java - 使方法可重用

java - mysql 中的位问题

java - 如何限制用户扫描仪输入数据类型(java)?

java - TLSv1.3 - 现在在 Java 8 中可用吗?

java - 是否建议使用 LinkedList 将对象发送到服务器?

java - Spring @Query 参数中出现意外的 token ":"

java - 用 Java 编写文件解析器的技巧?

java - Intellij无法配置和查看文件

java - Android 上传 - 手机延迟

java - 我的应用程序在尝试使用 Volley 时崩溃