private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException
import java.io.*;
import java.util.ArrayList;
class Knoten implements Serializable {
private static final long serialVersionUID = 11111L;
public transient Knoten naechstes = null;
public Object element = null;
public Knoten(Object obj) {
element = obj;
}
}
public class Kette implements Serializable {
private static final long serialVersionUID = 11111L;
public static transient Knoten kopf = new Knoten("kopf");
public transient Knoten ende = new Knoten("ende");
public Kette() {
kopf.naechstes = ende;
ende.naechstes = null;
}
public void fuegeNach(Knoten vorgaenger, Object neuObj)
{
if ( (vorgaenger == null) || (vorgaenger == ende) ) throw new RuntimeException("Vorgänger darf nicht null oder das Ende der Liste sein");
Knoten neuKnoten = new Knoten(neuObj);
neuKnoten.naechstes = vorgaenger.naechstes;
vorgaenger.naechstes = neuKnoten;
}
public void ausgeben() {
System.out.println(toString());
}
public String toString() {
StringBuffer sb = new StringBuffer();
Knoten aktuellerKnoten = kopf;
System.out.println("Kopf " + kopf);
for (int i=0; aktuellerKnoten!=null; i++) {
sb.append("Knoten ").append(i).append(": ").append(aktuellerKnoten.element).append("\n");
aktuellerKnoten = aktuellerKnoten.naechstes;
}
sb.append(" ");
return sb.toString();
}
public void speichern() throws Exception
{
FileOutputStream fos = new FileOutputStream ("vFAT.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(this);
oos.close();
}
private void writeObject(java.io.ObjectOutputStream out) throws IOException
{
Knoten aktuellerKnoten = kopf;
for (int i=0; aktuellerKnoten!=null; i++)
{
out.writeObject(aktuellerKnoten);
aktuellerKnoten = aktuellerKnoten.naechstes;
}
}
public static Kette laden() throws IOException, ClassNotFoundException
{
FileInputStream fis = new FileInputStream ("vFAT.txt");
ObjectInputStream ois = new ObjectInputStream (fis);
Kette kette = (Kette)ois.readObject();
ois.close();
return kette;
}
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException
{
Knoten knoten1 = (Knoten)in.readObject();
Knoten knoten2 = (Knoten)in.readObject();
Knoten knoten3 = (Knoten)in.readObject();
Knoten knoten4 = (Knoten)in.readObject();
System.out.println(knoten1.element);
knoten1.naechstes = knoten2;
System.out.println(knoten2.element);
knoten2.naechstes = knoten3;
System.out.println(knoten3.element);
knoten3.naechstes = knoten4;
System.out.println(knoten4.element);
knoten4.naechstes = null;
kopf = knoten1;
//System.out.println("kopf: " + kopf);
}
@SuppressWarnings("deprecation")
public static void main(String[] params) throws Exception
{
String eing, anzahl;
int anzahlint;
Kette liste = new Kette ();
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
BufferedReader anzahlk = new BufferedReader(new InputStreamReader(System.in));
while (true)
{
System.out.print("Eingabe: ");
eing = eingabe.readLine();
char auswahl = eing.charAt(0);
switch (auswahl)
{
case 'a': liste.ausgeben();
break;
case 'c': System.out.print("Anzahl der Kettenelemente? ");
anzahl = anzahlk.readLine();
anzahlint = Integer.parseInt(anzahl);
for (int i=1; i<=anzahlint; i++)
{
byte[] index = new byte[7];
byte[] namefield = new byte[28];
byte[] startp = new byte[10];
byte[] endep = new byte[10];
byte[] laenge = new byte[10];
byte[] nextc = new byte[7];
ArrayList<byte[]> al = new ArrayList<byte[]>();
al.add(index);
al.add(namefield);
al.add(startp);
al.add(endep);
al.add(laenge);
al.add(nextc);
liste.fuegeNach(liste.kopf, al);
}
liste.speichern();
break;
case 'l': liste.laden(); break;
case 'q': System.exit(0);
}
}
}
}
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException
{
Knoten aktuellerKnoten = kopf;
String string;
ArrayList neueKnoten = new ArrayList();
do
{
Knoten knoten = (Knoten)in.readObject();
aktuellerKnoten = knoten;
neueKnoten.add(aktuellerKnoten);
if (aktuellerKnoten.element instanceof String)
{
string = (String) aktuellerKnoten.element;
if (string.equals("kopf"))
{
System.out.println("KOPF");
//aktuellerKnoten = kopf;
}
if (string.equals("ende"))
{ System.out.println("ENDE");
aktuellerKnoten.naechstes = null;
}
}
} while (aktuellerKnoten.naechstes == null);
public static Kette laden() throws IOException, ClassNotFoundException
{
***
}
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException
{
****
}
Doch, 2. muss public sein, wenn sie ausgelagert wird.
class einlesen extends Kette
{
private static final long serialVersionUID = 1L;
public static Kette laden() throws IOException, ClassNotFoundException
{
FileInputStream fis = new FileInputStream ("vFAT.txt");
ObjectInputStream ois = new ObjectInputStream (fis);
Kette kette = (Kette)ois.readObject();
ois.close();
return kette;
}
public void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException
{
System.out.println("Test");
Knoten knoten1 = (Knoten)in.readObject();
Knoten knoten2 = (Knoten)in.readObject();
Knoten knoten3 = (Knoten)in.readObject();
Knoten knoten4 = (Knoten)in.readObject();
System.out.println(knoten1.element);
knoten1.naechstes = knoten2;
System.out.println(knoten2.element);
knoten2.naechstes = knoten3;
System.out.println(knoten3.element);
knoten3.naechstes = knoten4;
System.out.println(knoten4.element);
knoten4.naechstes = null;
kopf = knoten1;
//System.out.println("kopf: " + kopf);
}
}
import java.io.*;
import java.util.ArrayList;
class Knoten implements Serializable {
private static final long serialVersionUID = 1L;
public transient Knoten naechstes = null;
public Object element = null;
public Knoten(Object obj) {
element = obj;
}
}
public class Kette implements Serializable {
private static final long serialVersionUID = 11111L;
public static transient Knoten kopf = new Knoten("kopf");
public static transient Knoten ende = new Knoten("ende");
public Kette() {
kopf.naechstes = ende;
ende.naechstes = null;
}
public void fuegeNach(Knoten vorgaenger, Object neuObj)
{
if ( (vorgaenger == null) || (vorgaenger == ende) ) throw new RuntimeException("Vorgänger darf nicht null oder das Ende der Liste sein");
Knoten neuKnoten = new Knoten(neuObj);
neuKnoten.naechstes = vorgaenger.naechstes;
vorgaenger.naechstes = neuKnoten;
}
public void ausgeben() {
System.out.println(toString());
}
public String toString() {
StringBuffer sb = new StringBuffer();
Knoten aktuellerKnoten = kopf;
System.out.println("Kopf " + kopf);
for (int i=0; aktuellerKnoten!=null; i++) {
sb.append("Knoten ").append(i).append(": ").append(aktuellerKnoten.element).append("\n");
aktuellerKnoten = aktuellerKnoten.naechstes;
}
sb.append(" ");
return sb.toString();
}
public void speichern() throws Exception
{
FileOutputStream fos = new FileOutputStream ("vFAT.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(this);
oos.close();
}
private void writeObject(java.io.ObjectOutputStream out) throws IOException
{
Knoten aktuellerKnoten = kopf;
for (int i=0; aktuellerKnoten!=null; i++)
{
out.writeObject(aktuellerKnoten);
aktuellerKnoten = aktuellerKnoten.naechstes;
}
}
public static void main(String[] params) throws IOException
{
String eing, anzahl;
int anzahlint;
Kette liste = new Kette ();
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
BufferedReader anzahlk = new BufferedReader(new InputStreamReader(System.in));
while (true)
{
System.out.print("Eingabe: ");
eing = eingabe.readLine();
char auswahl = eing.charAt(0);
switch (auswahl)
{
case 'a': liste.ausgeben();
break;
case 'c': System.out.print("Anzahl der Kettenelemente? ");
anzahl = anzahlk.readLine();
anzahlint = Integer.parseInt(anzahl);
for (int i=1; i<=anzahlint; i++)
{
byte[] index = new byte[7];
byte[] namefield = new byte[28];
byte[] startp = new byte[10];
byte[] endep = new byte[10];
byte[] laenge = new byte[10];
byte[] nextc = new byte[7];
ArrayList al = new ArrayList();
al.add(index);
al.add(namefield);
al.add(startp);
al.add(endep);
al.add(laenge);
al.add(nextc);
liste.fuegeNach(liste.kopf, al);
}
try {
liste.speichern();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
case 'l': try {
einlesen.laden();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} break;
case 'q': System.exit(0);
}
}
}
}
class einlesen extends Kette
{
private static final long serialVersionUID = 1L;
public static Kette laden() throws IOException, ClassNotFoundException
{
FileInputStream fis = new FileInputStream ("vFAT.txt");
ObjectInputStream ois = new ObjectInputStream (fis);
Kette kette = (Kette)ois.readObject();
ois.close();
return kette;
}
public void readObject(java.io.ObjectInputStream in)
{
System.out.println("Test");
Knoten knoten1;
try {
knoten1 = (Knoten)in.readObject();
Knoten knoten2 = (Knoten)in.readObject();
Knoten knoten3 = (Knoten)in.readObject();
Knoten knoten4 = (Knoten)in.readObject();
System.out.println(knoten1.element);
knoten1.naechstes = knoten2;
System.out.println(knoten2.element);
knoten2.naechstes = knoten3;
System.out.println(knoten3.element);
knoten3.naechstes = knoten4;
System.out.println(knoten4.element);
knoten4.naechstes = null;
kopf = knoten1;
//System.out.println("kopf: " + kopf);
}
catch (IOException e) { e.printStackTrace(); }
catch (ClassNotFoundException e) { e.printStackTrace(); }
}
}
Ich sehe keinen Aufruf deiner readObject Methode