Сохранение ArrayList в Java-файл
Java предоставляет механизм, при котором объект может быть представлен в виде последовательности битов, содержащей данные этого объекта и следующую информацию: его тип и типы данных, сохраненных в объекте.После того, как сериализованный объект был успешно сохранен в файле, его можно без проблем прочитать из файла, а затем десериализовать. Биты, представляющие объект и его данные, могут быть использованы для воссоздания объекта в памяти.
Классы ObjectInputStream и ObjectOutputStream — это два высокоуровневых потока данных, которые содержат методы для сохранения и чтения содержимого ArrayList из .
ArrayList по умолчанию сериализуется. Это означает, что вам не нужно реализовывать Serializable interface для сериализации ArrayList.
Сохраните ArrayList в файл
Этот класс создает тестовый файл, который будет содержать объект ArrayList в виде битового потока. Тестовый файл используется для сохранения и воссоздания объекта из битовых потоков. Обратите внимание, что в этом примере мы не реализовали интерфейс Serializable, потому что ArrayList уже сериализуется по умолчанию.import java.io.FileNotFoundException;Runtime:
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) {
ArrayListal=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();
}
}
}
Сериализация успешно завершена...Содержимое двоичного файла, созданного после открытия, выглядит следующим образом:
Прочтите и создайте ArrayList из файла
В этом классе мы получаем поток данных в виде битов из тестового файла, который мы сохранили с помощью класса выше. Мы преобразуем возвращенный объект в ArrayList с приведением и выводим элементы ArrayList. Глядя на вывод, мы получаем те же элементы, которые мы добавили в список перед сериализацией.import java.io.FileInputStream;Runtime:
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);
}
}
Read data:Вот и все! Не стесняйтесь задавать свои вопросы ;)
hello world
hello world