Java 尝试运行我的程序时收到错误

Java 尝试运行我的程序时收到错误,java,Java,我在以下代码的主线程java.lang.NumberFormatException:中接收到错误异常,用于输入字符串:350。我很难解决这个问题。有没有人能解释一下这是怎么回事?根据我的理解,这通常意味着错误在第3行,第50行正确吗 package report.generator; import java.io.BufferedReader; import java.io.FileReader; import java.io.File; import java.io.FileWri

我在以下代码的主线程java.lang.NumberFormatException:中接收到错误异常,用于输入字符串:350。我很难解决这个问题。有没有人能解释一下这是怎么回事?根据我的理解,这通常意味着错误在第3行,第50行正确吗

 package report.generator;

 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.BufferedWriter;
 import java.io.IOException;

 public class ReportGenerator
 {


     public static void main(String[] args)
     {
        BufferedReader br = null;
        BufferedWriter bw = null;

        try
        {
            br = new BufferedReader(new FileReader("C:\\sprocketorders.txt"));
            String line;
            String element[] = new String[2];
            int   sum[] = new int[5];
            File file = new File ("C:\\sprocketordersreport.txt");

            while ((line = br.readLine()) != null)
            {
                element = line.split(" ");

                switch(Integer.parseInt(element[0]))
                {
                    case 1:
                        sum[0] = sum[0] + Integer.parseInt(element[1]);
                        break;
                    case 2:
                        sum[1] = sum[1] + Integer.parseInt(element[1]);
                        break;
                    case 3:
                        sum[2] = sum[2] + Integer.parseInt(element[1]);
                        break;
                    case 4:
                        sum[3] = sum[3] + Integer.parseInt(element[1]);
                        break;
                    case 5:
                        sum[4] = sum[4] + Integer.parseInt(element[1]);
                        break;
                }
            }

            if (!file.exists())
            {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            bw = new BufferedWriter(fw);
            bw.write("Spacely Sprockets\nTaking Sprockets into the Future\nSales Summary Report\nSprocket Number Total Quantity Sold\n");
            for(int i = 0; i < sum.length; i++)
                bw.write((i + 1) + "\t" + sum[i] + "\n");

        }
        catch (IOException e)
        {
             e.printStackTrace();

        }
        finally
        {
           try
            {
                if (br != null)
                    br.close();
                if (bw != null)
                    bw.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            }
          }

      }
该程序从文本文件中获取输入,并以报告格式输出信息

编辑:这里是输入文件信息。看了之后,问题似乎就出在这里。但我不完全确定

350

220

2100

515

190

585

4300

235

3100


它的格式与文本文件中的格式不完全相同。左边的整数和右边的整数之间有更多的空格。

Integer.parseInt最有可能抛出此错误,因为您试图解析的数字格式不正确,请查看您试图读取的字符串,您可能会发现错误,然后

[编辑]
问题似乎来自输入文件中包含数字的行之间有空行。

如果提供的值不是有效的数字,则会出现NumberFormatException。尝试调试并查看Integer.parseIntNo所有行上的值。向我们显示与异常关联的strace跟踪,该跟踪将包含有问题的行号…将信息添加到POST如果输入文件是双倍行距的,则在正确解析第一对数字后,它会崩溃,因为它试图把一个空行解析成一个整数。我错了数字之间的空格-你的行。拆分处理得很好。是的,确认-它运行良好,没有双空格。所以你是说,如果我删除文本文件中整数之间的额外空间,我应该是好的?行之间的额外空间,而不是每行上2个整数之间的额外空间。