Пробую сериализовать обьект. Идея такая: Есть класс HA(что-то типа человека) у него есть поля 1)Имя 2)Что делает 3)Id 4)Дата и есть методы 1)write 2)read Когда я пытаюсь считать второй обьект из файла то собственно в методе read вылетает исключение "java.io.StreamCorruptedException: invalid type code: AC"
Вот класс HA:
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import static java.lang.System.out;
import java.io.Serializable;
public class HA implements Serializable {
private String name; //Имя
private String work; //Дело
private String date; //Дата
private int id; //номер записи
private String getDate() { //Получение даты в формате дд.мм.гг
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat();
return dateFormat.format(currentDate).toString();
}
public HA (String name,String work,int id) { //Конструктор
this.name = name;
this.work = work;
this.date = getDate();
this.id = id;
}
public void display(HA ha) {
out.println("---------------------");
out.println("id:"+ha.id);
out.println("Кто:"+ha.name);
out.println("Что:"+ha.work);
out.println("Когда:"+ha.date);
out.println("---------------------");
}
}
А вот и методы с main:
import java.io.FileInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.io.EOFException;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.IOException;
public class Ser1 {
static String PATH="IO4.txt";
public static void main(String[] args) throws Exception {
write("Рик","Убрал мусор",13);
read();
}
static void write(String name,String work,int id) throws Exception {
try(FileOutputStream fos = new FileOutputStream(PATH,true);
ObjectOutputStream oos = new ObjectOutputStream(fos);) {
HA ha = new HA(name,work,id);
oos.writeObject(ha);
oos.flush();
}catch (Exception e) {
e.printStackTrace();
}
}
static void read() throws Exception {
ArrayList<HA> List = new ArrayList<>();
try (FileInputStream fis = new FileInputStream(PATH);
ObjectInputStream ois = new ObjectInputStream(fis);) {
while(true) {
try{
List.add((HA) ois.readObject());
}catch (EOFException e) {
break;
}
}
}catch (Exception e) {
e.printStackTrace();
}
for (HA ha:List) {
ha.display(ha);
}
}
}
Пробовал разные варианты,читал похожие,но не смог найти ответа. Помогите найти ошибку. Спасибо.
import java.io.Serializable;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class HA implements Serializable {
private static final long serialVersionUID = 1L;
private static final String DATE_FORMATTER_PATERN = "dd.MM.yyyy";
private final String name; //Имя
private final String work; //Дело
private final LocalDate date; //Дата
private final int id; //номер записи
public HA(int id, String name, String work) { //Конструктор
this.id = id;
this.name = name;
this.work = work;
this.date = LocalDate.now();
}
@Override
public String toString() {
return new StringBuilder()
.append("\r\n---------------------")
.append("\r\nid:").append(id)
.append("\r\nКто:").append(name)
.append("\r\nЧто:").append(work)
.append("r\nКогда:").append(date.format(DateTimeFormatter.ofPattern(DATE_FORMATTER_PATERN)))
.append("\r\n---------------------")
.toString();
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.util.List;
public class Ser1 {
static String PATH = "IO4.txt";
public static void main(String[] args) throws Exception {
List<HA> list = new ArrayList<>();
list.add(new HA(13, "Рик", "Убрал мусор"));
write(list);
System.out.println(read());
}
static void write(final List<HA> list) throws Exception {
try (ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(PATH)))) {
oos.writeObject(list);
oos.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
static List<HA> read() throws Exception {
try (ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(PATH)))) {
return (List<HA>) ois.readObject();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я хотел бы чтоб проще говоря у меня был таймер который после 1 минуты выполнял часть кода , допустим прибавлял к одной переменной еще 5 , и после...
Поддерживается ли в java бесконечные периодические дроби? Например, что будет при делении 86 на 30?
Есть данные в базе и с помощью их нужно создать GridView или RecyclerView не важно (суть одна что бы список был сортирован по категориям как на картинке...
Использую JavaFx WebView, не могу разобраться как увидеть ошибки, которые показываются в консоли браузера, если я открываю страницу через Google Chrome,...