Загрузите файл.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();
}
}
Класс 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 ответа
Вы создали экземпляр читателя, но затем решили не использовать его...
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]))
Вы, вероятно, должны использовать 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])) {
Как loadData
это метод экземпляра, который вы должны использовать:
if (reader.loadData(args[0])) {
Да, изменить DataReader
в reader
, Вы создали DataReader
названный объект reader
но ты звонишь loadData()
метод в классе DataReader
а не на объекте reader
, Если у вас нет экземпляра объекта и вы вызываете метод, он должен быть статическим. Вы можете вызывать статические методы, когда захотите, они не обязательно должны быть на конкретном объекте.