如何使用此数据返回Product []类型数组中的数据?

时间:2015-03-17 07:34:42

标签: java file arraylist

public class InputFileData {
/**
* @param inputFile a file giving the data for an electronic
* equipment supplier’s product range
* @return an array of product details
* @throws IOException
*/
public static Product [] readProductDataFile(File inputFile)
throws IOException{
// YOUR CODE HERE
}

此代码用于读取文本文件并将数据存储在Product []类型的数组中。我知道如何阅读文本文件并将其排序为数组,但我从未见过以这种方式编写的代码(特别是“public static Product []”,我不确定如何使用“(文件输入文件)”。我到处都看了,但找不到任何类似的例子。有人可以向我解释一下吗?

修改

package electronicsequipmentdemo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import static java.lang.System.out;
import java.util.Arrays;
import java.util.Scanner;

/**
 *
 * @author George
 */
public class InputFileData {
/**
* @param inputFile a file giving the data for an electronic
* equipment supplier’s product range
* @return an array of product details
* @throws IOException
*/
public static Product [] readProductDataFile(File inputFile)
throws IOException{

Product[] productName;   

try {
        FileReader fr = new FileReader("productDataFile.txt");
        BufferedReader br = new BufferedReader(fr);

        String str;


        while ((str = br.readLine()) != null) {           

           Product[] list = str.split("/");


           Arrays.toString(list);
           productName = list[1];
           return productName;



        }
        br.close();
    } catch (IOException e) {
        out.println("File not found");
    } 
return  null;
}

这会出现以下错误: Product [] list = str.split(“/”);不兼容的类型:String []无法转换为product []

productName = list [1];不兼容的类型:产品无法转换为Product []

我尝试过很多东西,但不知道这类课程是如何起作用的(我从来没有见过像这样的方法),结合我一直试图让它工作的事实坚实的两天,我可能都错了。我非常想学习如何做到这一点,真的很感激帮助。

2 个答案:

答案 0 :(得分:0)

这是一种静态方法。看到这个turorial(或许多其他):http://www.programmingsimplified.com/java/source-code/java-static-method-program

  

Java静态方法

     

Java静态方法程序:可以调用Java中的静态方法   没有创建类的对象。你有没有注意到我们写作的原因   定义main时的static关键字是因为程序执行   从main开始,尚未创建任何对象。考虑一下   以下示例,以提高您对静态方法的理解。

答案 1 :(得分:0)

请尝试以下代码     package electronicsequipmentdemo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import static java.lang.System.out;
import java.util.Arrays;
import java.util.Scanner;

/**
*
* @author George
 */
public class InputFileData {
/**
* @param inputFile a file giving the data for an electronic
* equipment supplier’s product range
* @return an array of product details
* @throws IOException
*/
public static Product [] readProductDataFile(File inputFile)
throws IOException{

Product[] productList=new Product[100];  
int i=0;

try {
       FileReader fr = new FileReader("productDataFile.txt");
       BufferedReader br = new BufferedReader(fr);

       String str;
       String[] list= new String[100];
       while ((str = br.readLine()) != null) {           
       list = str.split("/");
       for(String name:list){
               Product product=new Product();
               product.setProductName(name);
               if(i<100){
                   productList[i]=product;
                   i++;
               }
          }

       }
        br.close();
        return productList;
       }

  } catch (IOException e) {

     out.println("File not found");
 } 
return  null;
}

这个想法是read line方法会返回一个字符串,当你使用你的分隔符分割这个字符串时你得到一个字符串数组现在你必须使用Product类的setter方法创建一个Product对象(你知道我猜你需要将产品objet添加到ProductList数组中我假设你想要读取的文件行中不超过100个产品对象和100个名称。