2014-11-30 2 views
-1

В моей программе я пытаюсь вызвать метод readData, который будет читать файл с именем carbon.data. Он будет делать все значения в этом файле и помещать их в массив. Я просто не уверен, как вызвать метод ReadData. Вот код:Как я могу назвать следующий метод в Java?

import java.io.*; 
import java.util.*; 
public class Report{ 
    public static void main(String[] args){ 
     Scanner scanner = new Scanner(System.in); 
     String filename = scanner.next(); 
     Scanner input = readFile(filename); 
    } 

    public static Scanner readFile(String filename){ 
     File input = new File(filename); 
     Scanner sc = null; 
     try{ 
      sc = new Scanner(input); 
     } 
     catch(FileNotFoundException e){ 
      System.out.println("Filename not valid"); 
      System.exit(-1); 
     } 
     return sc; 
    } 

    public static CO2Data[] readData(String filename){ 
    File input = new File(filename); 
     Scanner sc = null; 
     try{ 
      sc = new Scanner(input); 
     } 
     catch(FileNotFoundException e){ 
      System.out.println("Filename not valid"); 
      System.exit(-1); 
     } 
    String info = sc.nextLine(); 
    int total = sc.nextInt(); 
    CO2Data[] arr = new CO2Data[total]; 
    for(int i=0; i<10;i++){ 
     arr[i] = new CO2Data(); 
     } 
    for(int i=0; i<10;i++){ 
     arr[i].setCountry(sc.next()); 
     arr[i].setTotalCO2(sc.nextDouble()); 
     } 
    return arr; 
    } 
} 

Этот код является частью класса CO2Data. Вот код для данного класса:

public class CO2Data { 

    private String country; 
    private double totalCO2; 

    public CO2Data() { 
     country = ""; 
     totalCO2 = 0; 
    } 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 

    public double getTotalCO2() { 
     return totalCO2; 
    } 

    public void setTotalCO2(double totalCO2) { 
     this.totalCO2 = totalCO2; 
    } 

ответ

0

Попробуйте назвать его в ваш основной и распечатать его -

public static void main(String[] args){ 
      Scanner scanner = new Scanner(System.in); 
      String filename = scanner.next(); 
      CO2Data[] aDataArray = null 
      aDataArray = readData(filename); 
      if(aDataArray != null) { 
       for(int i = 0; i < aDataArray.length; i++) { 
        System.out.println("Country:" + aDataArray[i].getCountry()); 
        System.out.println("CO2 Level:" + aDataArray[i].getTotalCO2()); 
       } 
      } 
     } 
0

Поскольку readData является статическим, вы бы назвали его Report.readData ("blah");

+0

Моя проблема: я не знаю, что положить в скобки. Он говорит, что это должно быть (String Filename), но я не знаю, что я должен назвать основным методом. –

0

Если его называют внутри класса отчета вы можете просто написать

CO2Data[] data = readData(filename); 

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

CO2Data[] data = Report.readData(filename); 
Смежные вопросы