Сохранение ArrayList в Java-файл

Java предоставляет механизм, при котором объект может быть представлен в виде последовательности битов, содержащей данные этого объекта и следующую информацию: его тип и типы данных, сохраненных в объекте.

После того, как сериализованный объект был успешно сохранен в файле, его можно без проблем прочитать из файла, а затем десериализовать. Биты, представляющие объект и его данные, могут быть использованы для воссоздания объекта в памяти.

Классы ObjectInputStream и ObjectOutputStream — это два высокоуровневых потока данных, которые содержат методы для сохранения и чтения содержимого ArrayList из .

ArrayList по умолчанию сериализуется. Это означает, что вам не нужно реализовывать Serializable interface для сериализации ArrayList.

Сохраните ArrayList в файл

Этот класс создает тестовый файл, который будет содержать объект ArrayList в виде битового потока. Тестовый файл используется для сохранения и воссоздания объекта из битовых потоков. Обратите внимание, что в этом примере мы не реализовали интерфейс Serializable, потому что ArrayList уже сериализуется по умолчанию.

import java.io.FileNotFoundException; 
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class SerializeArrayList {

public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add("hello world");
al.add («привет, мир»);

try {
FileOutputStream fileOut = new FileOutputStream("test");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(al);
out.close();
fileOut.close();
System.out.println("\nСериализация успешно завершена...\n");

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Runtime:

Сериализация успешно завершена... 
Содержимое двоичного файла, созданного после открытия, выглядит следующим образом:

сериализовать список массивов java

Прочтите и создайте ArrayList из файла

В этом классе мы получаем поток данных в виде битов из тестового файла, который мы сохранили с помощью класса выше. Мы преобразуем возвращенный объект в ArrayList с приведением и выводим элементы ArrayList. Глядя на вывод, мы получаем те же элементы, которые мы добавили в список перед сериализацией.

import java.io.FileInputStream; 
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;

public class SerializeArrayList {

public static void main(String[] args) {

//read
ArrayList< Строка> arraylist= новый ArrayList< Строка> ();
try {
FileInputStream fileIn = new FileInputStream("test");
ObjectInputStream ois = new ObjectInputStream(fileIn);
arraylist = (ArrayList) ois.readObject();
ois.close();
fileIn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Автоматически сгенерированный catch block
e.printStackTrace();
}

System.out.println("Чтение данных: \n");
for(String o:arraylist)
System.out.println(o);
}
}
Runtime:

Read data: 

hello world
hello world
Вот и все! Не стесняйтесь задавать свои вопросы ;)