@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" на имя файла, в который вы хотите записать объекты.