现在问题是我得到了java.lang.ArrayIndexOutOfBoundsException:
我一直在摆弄几个小时,不知道问题是在SalesManager
还是SalesAnaylzer
。
我要做的是将数组值格式化为金钱并添加标签存储1 ..和QTR 1 ...我很确定我得到了totalSales
,highestStoreSales
和{ {1}}正确
这是我的代码:
averageStoreSales
这是这个类文件:
import java.io.File;
import java.text.DecimalFormat;
import java.util.Scanner;
import java.io.IOException;;
public class SalesManager
{
public static void main( String []args) throws IOException
{
System.out.println(" What is the name of the file");
Scanner scan= new Scanner(System.in);
String fileName= scan.next();
SalesAnaylzer sA = new SalesAnaylzer(fileName);
/*System.out.println(data);
System.out.println("Here are the stores' sales for the past four quarters:" +
"/n" + data);
System.out.println("The total sales were:" + total);
System.out.println("The highest quarterly sales were:" + highest);
System.out.println("The average quarterly sales were:" + avg);*/
}
}
答案 0 :(得分:1)
我猜你正在使用带有空格的文件名。 scan.next()
获取由空格分隔的下一个“标记”。如果您的文件名是C:\User\John Smith\Documents\file.ext
,那么fileName
变量只会包含C:\User\John
。相反,请使用scan.nextLine()
抓取所有内容到Enter
键。
除非你用它发布完整的堆栈跟踪(异常的每一行错误输出),否则我们无法确切地看到问题是什么,因此我将再次猜测问题可能是什么。
您可能正在使用没有完整路径的文件名,程序不知道在哪里找到它。
.class
或.jar
文件的位置相同。我无法想到您的代码可能出现的任何其他问题,如果我提及的任何内容都无法解决您的问题,请编辑主帖以包含完整的堆栈跟踪。
编辑:在此答案的评论主题中,我们得出的结论是,用户遇到的问题是他们从文件名中排除了文件扩展名。 CompuDataSales
应该是CompuDataSales.txt
。其他具有类似问题的用户应检查以确保扩展名存在于文件名中。