加载.dat文件并读取



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

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

此代码收到错误:

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

数据读取器类:

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;
    }   
您可能

应该使用之前创建行的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])) {

您已经创建了读取器的实例,但随后选择不使用它...

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]))

由于loadData是一个实例方法,因此您应该使用:

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

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

相关内容

  • 没有找到相关文章

最新更新