Java 试图获取文件中行数的数组概念

Java 试图获取文件中行数的数组概念,java,arrays,Java,Arrays,我有下面的代码,它使用scanner类从文件中读取输入,并使用可比较的接口对输入进行排序。这段代码适用于固定的数组大小,但我想计算文件中的行数 public class ReadItemData { public static void main(String[] args) throws Exception { Scanner aScanner = new Scanner(new FileReader( "src//chapter11

我有下面的代码,它使用scanner类从文件中读取输入,并使用可比较的接口对输入进行排序。这段代码适用于固定的数组大小,但我想计算文件中的行数

public class ReadItemData {

    public static void main(String[] args) throws Exception {

        Scanner aScanner = new Scanner(new FileReader(
                "src//chapter11//Items.txt"));

     double avg = 0;
         double sum = 0;
      Item[] itemArray = new Item[5];

            while (aScanner.hasNext()) 
        {
                String code = aScanner.next();
                String sku = aScanner.next();
                double qty = aScanner.nextDouble();

            itemArray[count] = new Item(code, sku, qty);
            System.out.println(itemArray[i]);
        i++;

        }
    Arrays.sort(itemArray[i]);
        System.out.println();
          for (Item it : itemArray) 
        {
            System.out.println(it);

            sum += qty;
        }
    avg = sum / 5;
    if(qty <= (avg - 10))
     {
     System.out.println("Quantity is 10 less than the average quantity");
     }
    }
    }
    class Item implements Comparable {
    private int qty;
    private String sku,code;

    public Item(String code, String sku,int qty) {
        this.code = code;
        this.sku = sku;
        this.qty = qty;
    }

    public String getCode() {
            return code;
    }
    public String getSku() {
        return sku;
    }
    public int getQty() {
        return qty;
    }


    public int compareTo(Object o) {
        Item i = (Item) o;
        return (this.sku).compareTo(i.sku);
    }
}
我面临的另一个问题是,我正在计算循环中的和,但没有得到期望的结果

我的输入文件

PAP ENT 82
WAR HOT 79
TIM JUT 92
BON BLA 76
BON MAG 45
数量之和为374,但在我的代码中计算为225,我无法找出我做错了什么

感谢您的帮助


谢谢

不要将它们添加到固定数组中,而是将它们添加到java中。填充完列表后,使用listClass.size()检索列表的大小

下面是一些实现:

       List<Item> itemList = new List<Item>();
       while (aScanner.hasNext()) 
       {
            String code = aScanner.next();
            String sku = aScanner.next();
            double qty = aScanner.nextDouble();

        itemList.add(new Item(code, sku, qty));
        System.out.println(itemList.get(i));
    i++;

    }

除了使用数组,我别无选择。我能知道我在初始化数组时犯了什么错误吗?你说你别无选择是什么意思?这就是
ArrayList
类的作用。哦,对了。一位好心的教授告诉学生他们必须用错误的方法解决问题。耶!是的,这是一个assignment@Sandy如果你没有选择,你将不得不动态地创建一个数组并复制它,或者使它比你想象的条目数量更大。还要在aScanner.next()循环中创建一个计数器(i++中已经有一个计数器),它将告诉您该数组中有多少项。
       List<Item> itemList = new List<Item>();
       while (aScanner.hasNext()) 
       {
            String code = aScanner.next();
            String sku = aScanner.next();
            double qty = aScanner.nextDouble();

        itemList.add(new Item(code, sku, qty));
        System.out.println(itemList.get(i));
    i++;

    }
for (Item it : itemArray) 
    {
        System.out.println(it);
        //You must get the iterated item quantity (I assume you don't have setters and                                     
        //getters
         sum += it.qty;
    }