如何调用从文件中读取数据的方法?

时间:2015-02-18 20:50:44

标签: java facebook

问题是

  

编写方法readStock(String[] sAr, double[] pAr, int[] qAr)以从名为“stock.txt”的文件中读取以下详细信息。

所以我创建了包含

的股票文件
pillow    14.50    30
Sheet     43       40
Quilt     52.50    40
Set       100      200 

我做这个方法

public static void readStock(String[] sAr, double[] pAr, int[] qAr) throws FileNotFoundException 
 {

 Scanner input = new Scanner(new FileReader("stock.txt")) ;
 int i = 0;
 while (input.hasNext())
 {
    sAr[i]= input.next();
    pAr[i] = input.nextDouble();
    qAr[i] =input.nextInt();
    i++;

         }
 input.close();
     System.out.print("ITEM"+"          "+"Price"+"          "+"Quantity");
 for (i=0;i<qAr.length;i++)
 {
     System.out.println(sAr[i]+"          "+pAr[i]+"          "+qAr[i]+"");
 }
 }

但我不知道怎么称呼它?

我做了

public static void main(String[] args) 
    {

         readStock();

    }
}

但是有错误。

2 个答案:

答案 0 :(得分:0)

您需要在方法签名中使用3个参数,3个数组,因此您需要将它们传递给方法。您可以这样做:readStock(new String[4], new double[4], new int[4]);但是,使用此设计,您需要知道文件包含多少行(因为您需要创建具有适当大小的数组)。要使其适用于任何文件长度,只需用列表替换数组:

public static void readStock(List<String> names, List<Double> prices, List<Integer> quantity) throws FileNotFoundException
{

    Scanner input = new Scanner(new FileReader("stock.txt")) ;
    while (input.hasNext())
    {
        names.add(input.next());
        prices.add(input.nextDouble());
        quantity.add(input.nextInt());
    }
    input.close();
    System.out.print("ITEM"+"          "+"Price"+"          "+"Quantity");
    for (int i=0; i<names.size(); i++)
    {
        System.out.println(names.get(i)+"          "+prices.get(i)+"          "+quantity.get(i)+"");
    }
}

列表可以在添加元素时扩展其大小,并且没有足够的空间供他使用。要创建新列表,您可以使用例如new ArrayList<String>()

答案 1 :(得分:0)

您应该传递3个相应的参数,在您的情况下它们是String[] sAr, double[] pAr, int[] qAr。因此,您应该执行readStock(sAr, pAr, qAr);

之类的操作