加载 .dat 文件并读取。

我有一个text.dat文件,我从我的主类加载这个文件并在我的DataReader类中读取。但是我得到错误,说我必须将我的修改器更改为静态的。我无法这样做,因为它必须是非静态的。

我被困在这里,不知道我的问题是在这里还是其他地方。你能检查我的代码并告诉我它是否正确吗? 下一行也没有存储到vehicle里,显示为null!!

这段代码出错了:

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

并要求我将其更改为:public static boolean loadData(String VehicleData){///但此代码必须是非静态的…(我的教授要求)

主类:

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 Class:

public 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;
    }
点赞
用户1815355
用户1815355

你可能应该使用在前一行创建的 DataReader 实例(reader):

    DataReader reader = new DataReader(); // 读者用于从文件中读取数据

    // 从文件中加载数据
    if(reader.loadData(args[0])) {
2012-11-20 00:02:40
用户871026
用户871026

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

if (reader.loadData(args[0])) {
2012-11-20 00:03:26
用户992484
用户992484

你已经创建了一个 reader 实例,但却选择不使用它...

DataReader reader = new DataReader(); // 该 reader 用于从文件中读取数据
if(DataReader.loadData(args[0]))

你应该使用已有的实例

DataReader reader = new DataReader(); // 该 reader 用于从文件中读取数据
if(reader.loadData(args[0]))
2012-11-20 00:05:51
用户1684828
用户1684828

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

2012-11-20 00:06:37