Java 为什么我的求和程序会抛出NumberFormatException?

Java 为什么我的求和程序会抛出NumberFormatException?,java,file,numberformatexception,Java,File,Numberformatexception,我想从文件中读取数字并汇总总数,但我似乎无法正确处理数据。它成功地输出了数字,但没有成功地将它们相加 我的代码: import java.io.*; import java.util.*; public class Q1 { public static void main(String[] args) throws IOException { StringBuffer str = new StringBuffer(); FileWriter

我想从文件中读取数字并汇总总数,但我似乎无法正确处理数据。它成功地输出了数字,但没有成功地将它们相加

我的代码:

import java.io.*;
import java.util.*;

public class Q1 {
    public static void main(String[] args) throws IOException {
        StringBuffer str = new StringBuffer();      
        FileWriter output = new FileWriter("number.txt");
        Random r = new Random();

        for (int i = 1; i < 101; i++) {
            str.append(r.nextInt(100) + " ");
        }
        output.write(str.toString());
        System.out.println(str.toString());
        output.close();
        FileReader reader = new FileReader("number.txt");
        BufferedReader input = new BufferedReader(reader);
        String line = input.readLine();
        int total = 0;

        while (line != null) {
            System.out.print(line);
            total += Integer.parseInt(input.readLine());
        }
        System.out.println(total);
    }
}

您不会将结束行字符附加到输出。 请尝试以下代码段:

    StringBuffer str = new StringBuffer();

    FileWriter output = new FileWriter("number.txt");

    Random r = new Random();
    for (int i = 1; i < 101; i++) {

        str.append(r.nextInt(100)).append('\n');

    }
    output.write(str.toString());
    System.out.println(str.toString());
    output.close();

    FileReader reader = new FileReader("number.txt");
    BufferedReader input = new BufferedReader(reader);

    String line;
    int total = 0;

    while ((line = input.readLine())!=null) {

        total += Integer.parseInt(line);
    }
    System.out.println(total);
StringBuffer str=new StringBuffer();
FileWriter输出=新的FileWriter(“number.txt”);
随机r=新随机();
对于(int i=1;i<101;i++){
str.append(r.nextInt(100)).append('\n');
}
write(str.toString());
System.out.println(str.toString());
output.close();
FileReader=新的FileReader(“number.txt”);
BufferedReader输入=新的BufferedReader(读卡器);
弦线;
int-total=0;
而((line=input.readLine())!=null){
合计+=整数.parseInt(行);
}
系统输出打印项次(总计);

如果输出看起来很奇怪,请检查创建输出的位置。这通常是你会发现问题的地方。此外,还添加了一些小改动,让您了解一种可能使您的生活更轻松的不同方式。

您能更具体地说明具体问题吗?我已经添加了具体问题,以供将来参考,如果您接受了答案,您无需在标题中填写“已解决”。谢谢,没有错误,但这不是总结,它只合并了所有的数字,就像这个97391923299076738133561996026269174668642217425392249757826155068821355071648916788151364925233161123582892646231875904904091869544103969949427197765256423910296328327832912495414770247564925过程完成了。实际上,它只是附加到了行的末尾。尝试删除系统输出打印(行);消息灵通的现在应该行了@YwYa先生,行了,非常感谢,你给我一个主意。我替换为System.out.print(行+“”)