“java.lang.ArrayIndexOutOfBoundsException”数组逻辑问题

时间:2014-02-12 02:46:33

标签: java arrays file class methods

现在问题是我得到了java.lang.ArrayIndexOutOfBoundsException:

我一直在摆弄几个小时,不知道问题是在SalesManager还是SalesAnaylzer

我要做的是将数组值格式化为金钱并添加标签存储1 ..和QTR 1 ...我很确定我得到了totalSaleshighestStoreSales和{ {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);*/
  }
 }

1 个答案:

答案 0 :(得分:1)

我猜你正在使用带有空格的文件名。 scan.next()获取由空格分隔的下一个“标记”。如果您的文件名是C:\User\John Smith\Documents\file.ext,那么fileName变量只会包含C:\User\John。相反,请使用scan.nextLine()抓取所有内容到Enter键。

除非你用它发布完整的堆栈跟踪(异常的每一行错误输出),否则我们无法确切地看到问题是什么,因此我将再次猜测问题可能是什么。

您可能正在使用没有完整路径的文件名,程序不知道在哪里找到它。

  • 如果您使用的是IDE,则该文件应位于“src”和“classes”文件夹的同一目录中。
  • 如果您正在使用命令行,请确保该文件位于“类路径”中。这是JVM查找没有完整路径的文件名的地方。这通常与您正在执行的.class.jar文件的位置相同。

我无法想到您的代码可能出现的任何其他问题,如果我提及的任何内容都无法解决您的问题,请编辑主帖以包含完整的堆栈跟踪。

编辑:在此答案的评论主题中,我们得出的结论是,用户遇到的问题是他们从文件名中排除了文件扩展名。 CompuDataSales应该是CompuDataSales.txt。其他具有类似问题的用户应检查以确保扩展名存在于文件名中。