I m new
java.
I came to know like static variables can't be serialized.
but in a programme i m geting the values of static variable
inside a file.
.java file
-----------
package com.lara;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class TestSerialization implements Serializable
{
static int i=90;
transient double j;
String name;
NewTest t;
public TestSerialization( double j,String name,NewTest t)
{
this.j = j;
this.name=name;
this.t=t;
}
public static void main(String[] args)
{
NewTest t=new NewTest(45,98.99);
TestSerialization si=new TestSerialization(45.98,"abinash",t);
File f=new File("Serial.txt");
FileOutputStream fout=null;
ObjectOutputStream out = null;
try{
fout= new FileOutputStream(f);
out = new ObjectOutputStream(fout);
out.writeObject(si);
}
catch(IOException ex)
{
ex.printStackTrace();
}
finally
{
try
{
if(out!=null)
{
out.close();
out=null;
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
try
{
if(fout!=null)
{
fout.close();
fout=null;
}}
catch(IOException ex)
{
ex.printStackTrace();
}
}
File f1=new File("Serial.txt");
FileInputStream fin=null;
ObjectInputStream in =null ;
try
{
fin=new FileInputStream(f1);
in =new ObjectInputStream(fin);
TestSerialization si2=(TestSerialization)in.readObject();
System.out.println(si2.i);
System.out.println(si2.j);
System.out.println(si2.name);
System.out.println(si2.t.k);
System.out.println(si2.t.l);
}
catch(IOException e)
{
e.printStackTrace();
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace();
}
finally
{
try
{
if(in!=null)
{
in.close();
in=null;
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
try
{
if(fin!=null)
{
fin.close();
fin=null;
}}
catch(IOException ex)
{
ex.printStackTrace();
}
}
}
}
class NewTest implements Serializable
{
int k;
static double l;
public NewTest(int k, double l) {
this.k = k;
this.l = l;
}
}
OUTPUT
------
90
0.0
abinash
45
98.99
So, i m confused.
Thanks in advance