I don't know what's wrong.
package com.codegym.task.task20.task2022;
import java.io.*;
/*
Overriding serialization in a thread
*/
public class Solution implements Serializable, AutoCloseable {
private transient FileOutputStream stream;
private String fileName;
public Solution(String fileName) throws FileNotFoundException {
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();
stream = new FileOutputStream(fileName, true);
}
@Override
public void close() throws Exception {
System.out.println("Closing everything!");
stream.close();
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
String fileName = "miFichero.dat";
Solution solution = new Solution(fileName);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName));
solution.writeObject("Prueba serializacion");
solution.writeObject(oos);
oos.flush();
FileInputStream fis = new FileInputStream(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
Solution solution1 = (Solution)ois.readObject();
solution1.readObject(ois);
if(solution1.toString().equals(solution.toString()))
{
System.out.println("Son iguales");
}
else {
System.out.println("No son iguales");
}
oos.close();
ois.close();
}
}