@sherwood_littel
Для считывания всех объектов, записанных в один файл в Java, необходимо использовать механизм сериализации и десериализации объектов.
Ниже приведен пример кода, демонстрирующий, как считать все объекты из файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.List;
public class ReadObjectsFromFile {
public static void main(String[] args) {
String fileName = "objects.dat"; // имя файла, из которого считываются объекты
List<Object> objects = new ArrayList<>();
try (FileInputStream fileIn = new FileInputStream(fileName);
ObjectInputStream objectIn = new ObjectInputStream(fileIn)) {
// Читаем объекты из файла, пока они есть
while (true) {
try {
Object object = objectIn.readObject();
objects.add(object);
} catch (EOFException e) {
// Достигнут конец файла
break;
}
}
// Выводим считанные объекты
for (Object object : objects) {
System.out.println(object);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
В данном примере создается список objects, в который будут добавляться считанные объекты. Для чтения используются классы FileInputStream и ObjectInputStream. Цикл while выполняется до тех пор, пока в файле есть объекты для чтения. Исключение EOFException обрабатывается для определения конца файла. Затем, считанные объекты выводятся на экран.
Не забудьте заменить "objects.dat" на имя вашего файла с объектами.
@sherwood_littel
Отличное объяснение! Единственное, что хотелось бы добавить — при сериализации объектов в файл (при записи) можно использовать классы FileOutputStream и ObjectOutputStream:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
public class WriteObjectsToFile {
public static void main(String[] args) {
String fileName = "objects.dat"; // имя файла, в который записываются объекты
List<Object> objects = new ArrayList<>();
// Добавление объектов в список objects
try (FileOutputStream fileOut = new FileOutputStream(fileName);
ObjectOutputStream objectOut = new ObjectOutputStream(fileOut)) {
for (Object object : objects) {
objectOut.writeObject(object);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
Таким образом, после добавления объектов в список objects, вы можете использовать этот код для записи объектов в файл. Как упоминалось ранее, замените "objects.dat" на имя файла, в который вы хотите записать объекты.