2015-03-17 4 views
-3
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 []», и я не уверен, как работать с «(входной_файл File)». Я смотрел повсюду, но не может найти какие-либо примеры ничего подобного. может кто-нибудь объяснить мне это?Как вернуть данные в массив типа Product [], используя эти данные?

EDIT

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; 
} 

Это дает следующее ошибки: Продукт [] list = str.split ("/"); несовместимые типы: String [] не может быть преобразован в продукт []

productName = list [1]; несовместимый тип es: Продукт не может быть преобразован в Продукт []

Я пробовал много вещей, но не зная, как этот класс предназначен для работы (я никогда не видел метод, написанный таким образом), в сочетании с факт, что я пытался заставить его работать в течение двух дней, я, вероятно, все испортил. Я в отчаянии, чтобы научиться делать это, помощь будет действительно оценена.

+0

Вы узнали о методах? – immibis

+0

Разве это не тот же вопрос: [Как бы добавить оператор возврата для этого и как я могу вызвать метод?] (Http://stackoverflow.com/q/29089478) – Tom

+0

Да, но у меня нет видел тот, который работает таким образом раньше. Это также не позволит мне называть этот метод, как и все остальные. Моя основная проблема заключается в том, что я не могу понять, как использовать компоненты Product [] и File inputFile. –

ответ

0

Это статический метод. Смотрите эту turorial (или много других): http://www.programmingsimplified.com/java/source-code/java-static-method-program

Java статический метод

Java программа статический метод: статические методы в Java можно назвать без создания объекта класса. Вы заметили, почему мы ставим ключевое слово при определении основного, потому что выполнение программы начинается с основного, и объект еще не создан. Рассмотрим приведенный ниже пример , чтобы улучшить понимание статических методов.

+0

Я знаю о статике, что я не получаю, это Продукт [], находящийся там, или как использовать File filedata.Я могу выполнить этот процесс с помощью других методов, но для использования этого формата я не понимаю, что я не знаю, как структурировать код или вывод. –

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; 
} 

Идея заключается в том, что метод чтения строки вернет вам строку, когда вы разделяете эту строку с помощью разделителя вы получаете массив строк теперь вы должны создать объект продукта, используя метод установки Продукта класс (который, как вы знаете, я предполагаю), вам нужно добавить объект продукта в массив ProductList. Я предположил, что в строке файла, который вы пытаетесь прочитать, содержится не более 100 объектов продукта и 100 имен.

+0

Спасибо, я отдам это :) –

+0

Я не могу установить его, чтобы фактически вернуть что-либо; если я сделаю его возвратным списком, он говорит, что не может найти переменную (потому что она определена в try catch). Я определяю его перед попыткой catch, и попытка catch терпит неудачу, поскольку она уже определена и не будет отменять ее. Так что, если я не определяю его с самого начала, список возврата дает ошибку «не может найти символ», и если я его определяю, то try catch дает ошибку «список переменных уже определен». Я не могу понять, как написать его, чтобы он относился к нему как к временному. –

+0

Я также попытался дать ответ в попытке, но он либо говорит, что String [] не может быть преобразован в Product [] (в ответ на возвращаемый список;) или .class (в ответ на возврат Product [] list;). Я действительно не знаю, что вернуть за это. –

Смежные вопросы