加载.dat文件并读取

时间:2012-11-20 00:00:43

标签: java datareader lua-loadfile

我有文本.dat文件,我从我的主类加载这个文件并读入我的DataReader类。但我得到错误,我必须将我的修饰符更改为静态。我不能这样做,因为它必须是非静态的。

我被困在这里,如果我的问题在这里或其他地方,我不会起诉。你会检查我的密码并让我知道它是否合适? 下一行也不存储在车辆中并显示null !!

此代码出错:

if(DataReader.loadData(args[0])) {   // i get errors here

并要求我将其更改为:public static boolean loadData(String VehicleData) { /// but this code has to be non-static...(我的教授要求)

主要课程:

public class Project3 {

private static Vehicle[] vehicles;
static int x;

public static void main(String[] args) {
    // Display program information


    DataReader reader = new DataReader(); // The reader is used to read data from a file


    // Load data from the file
    **if(DataReader.loadData(args[0]))** {   // i get errors here

        vehicles= reader.getVehicleData(); // this line also shows null

        // Display how many shapes were read from the file
        System.out.println("Successfully loaded " + vehicles[0].getCount() + 
                           " vehicles from the selected data file!");
        displayMenu();
    }
}

DataReader类:

ublic boolean loadData(String VehicleData) {
    boolean validData = false;
    String line;

try{
// Open the file
    BufferedReader reader = new BufferedReader(new FileReader("VehicleData.dat"));
//Read File Line by line


        while((line=reader.readLine()) !=null) {
            addVehicle(line.split(","));
        }
        reader.close();
        vehicles = Array.resizeArray(vehicles, vehicleCount);
        validData = true;
    }   

4 个答案:

答案 0 :(得分:2)

您应该使用之前创建该行的DataReader实例(reader):

    DataReader reader = new DataReader(); // The reader is used to read data from a file


    // Load data from the file
    if(reader.loadData(args[0])) {

答案 1 :(得分:1)

由于loadData是您应该使用的实例方法:

if (reader.loadData(args[0])) {

答案 2 :(得分:1)

您已经创建了一个阅读器实例,但之后选择不使用它......

DataReader reader = new DataReader(); // The reader is used to read data from a file
if(DataReader.loadData(args[0]))

您应该只使用您可用的实例

DataReader reader = new DataReader(); // The reader is used to read data from a file
if(reader.loadData(args[0]))

答案 3 :(得分:0)

是的,将DataReader更改为reader。您已创建名为DataReader的{​​{1}}对象,但您在类reader上调用loadData()方法,而不是在对象DataReader上调用reader方法。如果您没有该对象的实例并且正在调用该方法,则它必须是静态方法。您可以随时调用静态方法,它们不必位于特定对象上。