У вас где-то должен быть класс Appointment, и вы пытаетесь добавить объект типа Appointment к массиву назначений, основываясь на информации, которую вы получаете из текстового файла, верно?
Итак, у вас есть для l oop, который читает каждую строку из текстового файла, а затем вам нужно создать экземпляры Appointment для каждой строки.
Класс Appointment имеет своего рода конструктор, который вы нужно вызвать для создания из него новый объект (читай: «новый экземпляр»).
Давайте предположим, что это выглядит так:
public Appointment(String title, String time, String location) {
this.title = title;
this.time = time;
this.location = location;
}
Давайте также предположим, что каждая строка в Файл appointments.txt
форматируется следующим образом:
<Title>, <Time>, <Location>
Это означает, что вам придется проанализировать строку, которую вы прочитали из файла, разделив ее (разделителем в этом случае будет " , ". Просто проведите быстрое исследование inte rnet о том, как разбивать строки в Java, на самом деле это довольно просто.
Когда у вас есть все биты информации в отдельных переменных, вы Мы вызываем конструктор Appointment, чтобы создать новую встречу, которую вы затем можете добавить в свой массив. Предполагая, что у вас есть три строки с заголовком, временем и местоположением встречи (или любой другой информацией в текстовом файле), это будет выглядеть так:
try{
fileRead = new Scanner(new FileInputStream("appointments.txt"));
int counter = 0;
while(fileRead.hasNext()) {
String lineRead = fileRead.nextLine();
// here comes the parsing of the line into three String variables
appointments[counter] = new Appointment(title, time, location);
fileRead.close();
}
} catch(FileNotFoundException ex) {
// Do some exception handling in here, or just print the stacktrace
}
Строка, которую я хочу вам наибольшее внимание уделить линии, на которой написано new Appointment(title, time, location)
. Разница между этим и кодом, который вы опубликовали, состоит в том, что здесь я создаю новый объект типа Appointment, который соответствует типу массива, который вы создали ранее, в строке Appointment[] appointments = new Appointment[capacity]
.
You пытался напрямую добавить строку в массив, хотя вы объявили массив типа Appointment
, а не типа String
.
. Вы должны прочитать топи c объектов в Java в общем, и что такое конструкторы, что они делают и как вы их используете.
Например, эта топика c действительно хорошо и исчерпывающе объясняется в официальных Java руководствах Oracle (компания, которая разрабатывает язык Java). Я связал вас с конкретным разделом c, в котором говорится о конструкторах, но я бы посоветовал вам прочитать хотя бы всю главу и все перед ней, что поможет вам понять, о чем они на самом деле говорят.
Надеюсь, это поможет: )