来自不同类别的呼叫方法(与其他问题不同)

时间:2017-06-25 03:43:40

标签: java

所以我对java比较新,我正在尝试使用我主要内部不同类的方法。

我用来拉取的方法最初不包含任何数据,而是从文本doc中提取数据。

我已经包含了调用另一个类方法的代码,该方法从文件中加载数据。它不会起作用,所以我的错误在哪里?

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FinalRobert {

public static void main(String[] args) {
//output of animalList class here 
}

以下是我想要学习的课程:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;


public class animalList {

public void animalDetails () {

int i = 0;

String animalInfo = "C:/Users/Robert/Documents/animals.txt";
String animalHabitat = "‪C:/Users/Robert/Documents/habitats.txt";

    try {
        File animalFile = new File(animalInfo);
        FileReader animalReader = new FileReader(animalFile);
        BufferedReader animalList = new BufferedReader (animalReader);
        StringBuilder animalDetailList = new StringBuilder();

        String line;

        while ((line = animalList.readLine()) != null) {
            for (i = 0; i <4 ; i++) {
                System.out.println(line);
                animalList.readLine();
            }
        }
        animalReader.close();
        System.out.println(animalDetailList.toString());
        }
    catch (IOException e) {
    }
}
}

所以我想在我的main中输出animalList类的输出,但是我不知道如何将它结束,因为我不一定带来变量,而是一个过程。完整的东西应该是第一行和第四行(因此文档中的前五行总共)。希望这会让我更容易看到我的问题。

2 个答案:

答案 0 :(得分:0)

这是AnimalList的{​​{3}}:

public class AnimalList {//use java naming convention

    public void animalDetails () {

        //mcve should be runnable. The problem you ask help with is not
        //reading from file, so remove file reading functionality to make it mcve
        StringBuilder animalDetailList = new StringBuilder();
        animalDetailList.append("Family: Cats").append("\n")
                        .append("Type  : Panther").append("\n")
                        .append("Weight: 250kg").append("\n")
                        .append("Color : Pink");
        System.out.println(animalDetailList.toString());
    }
}

从另一个类调用其方法:

public class FinalRobert {

    public static void main(String[] args) {

        //to invoke animalDetails() method use
        AnimalList aList = new AnimalList();
        aList.animalDetails();

        //if you do not need the aList refrence you could use 
        //new AnimalList().animalDetails();
    }
}

输出

  


家庭:猫类型:黑豹重量:250kg
颜色:   粉红色

答案 1 :(得分:0)

我希望这对你有所帮助。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FinalRobert {

    public static void main(String[] args) {
        animalList list = new animalList();
        list.animalDetails();
    }
}



import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;


public class animalList {

    public String animalDetails () {

        int i = 0;
        String output="";

        String animalInfo = "C:/Users/Robert/Documents/animals.txt";
        String animalHabitat = "‪C:/Users/Robert/Documents/habitats.txt";

        try {
            File animalFile = new File(animalInfo);
            FileReader animalReader = new FileReader(animalFile);
            BufferedReader animalList = new BufferedReader (animalReader);

            String line;
            while ((line = animalList.readLine()) != null & i<4) {
                   System.out.println(line);
                    output = output + "\n"+ line;
                    i++;
            }
            animalReader.close();
            System.out.println(output);
        }
        catch (IOException e) {
        }
        return output;
    }
}