Я писала код и с подсказками. но совсем в них не въехала, потом всё удалила. Сюда надо добавлять поток со вторым параметром.
В выводе чисто на мой, сейчашний код, пишет, что закрыл всё и выбрасывает NullPointerException. Этот код я писала сама, его ещё понимаю, а код с дописыванием строки в методе чтения где происходит инициализация поля steam новым объектом потоком со вторым аргументом - я уже не врубаюсь, поэтому я удалила и оставила то, что писала с самого начала. Пожалуйста. скажите. что сюда добавить и почему. прошу. Не будьте ко мне беспощадны, это уже сделала за вас задача.
package com.javarush.task.task20.task2022;
import java.io.*;
/*
Переопределение сериализации в потоке
*/
public class Solution implements Serializable, AutoCloseable {
private FileOutputStream stream;
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();
String fileName = "";
}
@Override
public void close() throws Exception {
System.out.println("Closing everything!");
stream.close();
}
public static void main(String[] args) {
String file = "D:\\Test.txt";
Solution object1 = new Solution(file);
object1.writeObject("Lock");
object1.close();
FileOutputStream out = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(object1);
oos.close();
FileInputStream in = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(in);
Solution object01 = (Solution) ois.readObject();
ois.close();
in.close();
object01.writeObject("UnLock");
object01.close();
}
}