我在线程" main"中收到错误Exception。 java.lang.NumberFormatException:对于输入字符串:" 3 50"在下面的代码中。我很难解决它。任何人都可以对它的内容有所了解吗?根据我的理解,它通常意味着错误在第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();
}
}
}
}
该程序将从文本文件中获取输入并以报告格式输出信息。
编辑:这是输入文件信息。看了之后,看起来这可能是问题的来源。但我并不完全确定。
3 50
2 20
2 100
5 15
1 90
5 85
4 300
2 35
3 100
它没有像在文本文件中那样格式化它。左边的整数和右边的整数之间有更多的空格。
答案 0 :(得分:0)
Integer.parseInt()最有可能抛出那个,因为你试图解析的数字格式不正确,看看你试图从中读取的字符串可能会发现错误然后< / p>
答案 1 :(得分:0)
[EDITED] 问题似乎来自您的输入文件,在包含数字的行之间有空行。