Как прочитать все объекты в файле после записи всех файлов [дубликат]JAVA

Программисты JAVA общаются здесь
Anonymous
Как прочитать все объекты в файле после записи всех файлов [дубликат]

Сообщение Anonymous »

Я пытаюсь создать программу, которая сможет читать все объекты, которые я помещаю в файл.
Ввод работает хорошо, и я помещаю 8 объектов. Но когда я пытаюсь прочитать их из файла, это показывает исключение java.io.StreamCorruptedException. Кажется, он не может отобразить все введенные мной методы.
Я не знаю, где я ошибаюсь.
Есть ли другой способ реализовать функцию, отображающую все объекты в системе.
Спасибо
И я ищу решение
Присоединение к ObjectOutputStream
но я не могу понять ответ, буду очень признателен, если кто-нибудь сможет это объяснить
import java.util.*;
import java.io.*;
public class driver
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
ObjectOutputStream objOut = null;
ObjectInputStream objIn = null;
Pet p = null;
Person owner = null;

do{
System.out.println("what u want to do");
System.out.println("1.add the pet\n2read the pet\n3get the weight\n4 system exit");
int option = keyboard.nextInt();
keyboard.nextLine();

switch(option)
{
case 1:
try
{
objOut = new ObjectOutputStream(new FileOutputStream("pet.dat",true));
owner = new Person();
owner.getInput();
System.out.println("Type of pet?(1-Mammal;2-Fish;3-Amphibian");
int type = keyboard.nextInt();
keyboard.nextLine();
switch (type)
{
case 1:
p = new Mammal();
p.owner = owner;
p.getInput();
objOut.writeObject(p);
objOut.close();
break;
case 2:
p = new Fish();
p.owner = owner;
p.getInput();
objOut.writeObject(p);
objOut.close();
break;
case 3:
p = new Amphibian();
p.owner = owner;
p.getInput();
objOut.writeObject(p);
objOut.close();
break;
}
}

catch (Exception e)
{
e.printStackTrace();
System.out.println("here");
}

break;

case 2:
try
{
objIn = new ObjectInputStream(new FileInputStream("pet.dat"));

try
{
while(true)
{
p = (Pet)objIn.readObject();
System.out.println(p);
}

}
catch (EOFException e)
{
System.out.println("System ends");
}
}

catch (Exception e)
{
e.printStackTrace();

System.out.println("something in driver");
}

break;

case 3:
try
{
objIn = new ObjectInputStream(new FileInputStream("pet.dat"));

try
{
while(true)
{
p = (Pet)objIn.readObject();
System.out.println(p.getname() + "'s weight is: " + p.getweight());
}

}
catch (EOFException e)
{
System.out.println("System ends");
}
}

catch (Exception e)
{
e.printStackTrace();
System.out.println("something in driver");
}
break;

case 4:

System.exit(0);
}
}while(true);
}
}


Подробнее здесь: https://stackoverflow.com/questions/231 ... -the-files

Вернуться в «JAVA»