public class Solution implements Serializable, AutoCloseable {
public static void main(String[] args) {
try (FileOutputStream fileOutput = new FileOutputStream("your_file_name_2.txt");
ObjectOutputStream outputStream = new ObjectOutputStream(fileOutput);
FileInputStream fiStream = new FileInputStream("your_file_name_2.txt");
ObjectInputStream objectStream = new ObjectInputStream(fiStream)
) {
Solution solution = new Solution("your_file_name_1.txt");
solution.writeObject("some text");
outputStream.writeObject(solution);
outputStream.flush();
//load object from file
Solution loadedObject = (Solution) objectStream.readObject();
loadedObject.writeObject("some text - 2");
} catch (Exception skipped) {
}
}
private transient FileOutputStream stream;
private String fileName;
public Solution(String fileName) throws FileNotFoundException {
this.fileName = fileName;
this.stream = new FileOutputStream(fileName);
}
public void writeObject(String string) throws IOException {
stream.write(string.getBytes());
stream.write("\n".getBytes());
stream.flush();
}
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
this.stream = new FileOutputStream(fileName, true);
}
@Override
public void close() throws Exception {
System.out.println("Closing everything!");
stream.close();
}Sasha
2 уровень
Объясните, пж, для чего эта задача, чего она учит
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон
22 декабря 2021, 17:48
задача на внимательность йожегов
по суть просто сохранить и загрузить объект, усложнено тем что сам объект тоже чтото сохраняет\загружает
учит тому что
1. потоки нельзя в Serializable, потому помечаем нужным словом
2. то что нам нужно, мы сохраняем через то что Serializable и загружая воссоздаем утраченное
не совсем только понял про in\out.close;
зачем нам закрывать не нами открытые потоки
0