• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Serialization problem

 
Ranch Hand
Posts: 92
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am unable to run the following code.it gives me a compile time error.please help me solve this.i guess i am making a basic mistake but cannot figure it out.
Thanks in advance

import java.io.*;
class base
{
int x=8;
}
class base1 extends base implements Serializable
{
private transient base b=new base();

}

public class sirhir
{
base b;
public static void main(String str[]) throws IOException,ClassNotFoundException
{


base1 b1=new base1();
FileOutputStream frs=new FileOutputStream("nawa.ser");
ObjectOutputStream oos=new ObjectOutputStream(frs);
oos.writeObject(oos);

oos.close();

FileInputStream fis=new FileInputStream("nawa.ser");
ObjectInputStream ois=new ObjectInputStream(fis);
base1 bs1=(base1)ois.readObject(ois);
ois.close();



}
private void writeObject(ObjectOutputStream oo)
{
try
{
oo.defaultWriteObject();
oo.writeInt(b.x);
}
catch(Exception e)
{
System.out.println(e);
}
}

private void readObject(ObjectInputStream inp)
{
try
{
inp.defaultReadObject();
inp.readInt(b.x);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
 
Ranch Hand
Posts: 96
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Jitendra Jha


Everything shoulb be correct , Remove the transient key word then try to execute your code
 
Sheriff
Posts: 22783
131
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Change the lines

into
 
Jitendra Jha
Ranch Hand
Posts: 92
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The Program is still throwing an exception.
I am getting not serializable exception
 
Rob Spoor
Sheriff
Posts: 22783
131
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The problem is in the "oos.writeObject(oos);" line; you're writing the output stream to itself, but the output stream isn't serializable.

Turn it into "oos.writeObject(b1);" and it will work.
 
Or we might never have existed at all. Freaky. So we should cherish everything. Even this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic