Revised: Mar./23rd/2002
$B%*%V%8%'%/%H$N%9%H%j!<%`$G
transient
$B$+$DHs(Bstatic
$B%a%s%P!<$N;}$DCM(B$B%U%#!<%k%I$GB>$N%*%V%8%'%/%H$,;2>H$5$l$F$$$l$P!"$3$l$b=q$-9~$^$l$^$9!#(B
$B$3$N%9%H%j!<%`$GD>Ns2=2DG=$J%*%V%8%'%/%H$O!"%G%U%)%k%H$G$Or7o$N%/%i%9$+$i:n$i$l$?$b$N$K8B$i$l$^$9!'(B
Serializable
$B$+(B Externalizable
$B%$%s%?%U%'!<%9$r$B%9!<%Q!<%/%i%9$,D>Ns2=2DG=$G$J$$>l9g$O!"I|85$9$k$H$-$K0z?t$N$J$$%3%s%9%H%i%/%?$,8F$P$l$F:F9=C[$5$l$^$9!#$7$?$,$C$F!"$3$N%9!<%Q!<%/%i%9$,0z?t$N$J$$%3%s%9%H%i%/%?$r
$B0z?t$N$J$$%3%s%9%H%i%/%?$G9=C[$5$l$?%9!<%Q!<%/%i%9$rE,@Z$J>uBV$K99?7$9$k0Y$K$O!"%5%V%/%i%9$G(B writeObject()
/readObject()
$B$r%*!<%P!<%i%$%I$7$F!"D>Ns2=%W%m%;%9$r%+%9%?%^%$%:$9$kI,MW$,$"$j$^$9!#(B
$B%U%#!<%k%I$GD>Ns2=2DG=$G$J$$%*%V%8%'%/%H$r;2>H$7$F$$$k>l9g$O!"(B transient
$B=$>~;R$GD>Ns2=$5$l$J$$$h$&$KL@<($7$F$*$/I,MW$,$"$j$^$9!#$3$N>l9g$OI|85$5$l$k$H$-$K(B 0
/null
$B$G=i4|2=$5$l$^$9$N$G!"E,@Z$J>uBV$K99?7$9$k0Y$K$O(B writeObject()
/readObject()
$B$r%*!<%P!<%i%$%I$7$F!"D>Ns2=%W%m%;%9$r%+%9%?%^%$%:$9$kI,MW$,$"$j$^$9!#(B
$B@h$K>R2p$7$?D>Ns2=!?D>Ns2=I|85$O!"%G%U%)%k%H$N5sF0$G$9!#$3$3$K%*%V%8%'%/%H$r;}B3$5$;$k0Y$KITI,MW$J>pJs$,4^$^$l$k>l9g$K$O!"D>Ns2=$N5sF0$rL@<($9$k$3$H$G$h$j9bB.$K=hM}$9$k$3$H$b=PMh$^$9!#$^$?!"D>Ns2=IT2DG=$J%*%V%8%'%/%H$N;2>H$r:F9=C[$9$kI,MW$,$"$k>l9g$K$b!"D>Ns2=$N5sF0$r%+%9%?%^%$%:$9$kI,MW$,$"$j$^$9!#(B
$BD>Ns2=%W%m%;%9$r%+%9%?%^%$%:$9$k0Y$K$O!"D>Ns2=$9$k%/%i%9$G
private void writeObject(ObjectOutputStream s) throws IOException
private void readObject(ObjectInputStream s) throws IOException
writeObject()
$B%a%=%C%I$G=q$-9~$^$l$?>pJs$rFI$_9~$_!"I,MW$,$"$l$PI|85$5$l$?%*%V%8%'%/%H$N>pJs$r99?7$9$k(B$B2?$l$N>l9g$b!"@h$K@bL@$7$?%G%U%)%k%H$ND>Ns2=%W%m%;%9$rdefaultReadObject()
$B$r8F$S=P$9I,MW$,$"$j$^$9!#(B
// $BD>Ns2=$N%+%9%?%^%$%:(B private void writeObject(ObjectOutputStream s) throws IOException { s.defaultWriteObject(); // customized serialization code } // $BD>Ns2=I|85$N%+%9%?%^%$%:(B private void readObject(ObjectInputStream s) throws IOException { s.defaultReadObject(); // customized deserialization code ... // followed by code to update the object, if necessary }
readObject()
$B%a%=%C%I$OBP1~$9$k(B writeObject()
$B%a%=%C%I$HF1$8=gHV$GFI$_9~$`I,MW$,$"$j$^$9!#$^$?!"I,MW$,$"$l$P%*%V%8%'%/%H$N>uBV$r99?7$9$k%3!<%I$rB3$1$k$3$H$b=PMh$^$9!#Nc$($P!"(B transient
$B@k8@$7$?%U%#!<%k%I$rFI$_
$BD>Ns2=2DG=$G$J$$%/%i%9(B Oya
$B$H!"D>Ns2=2DG=$J%5%V%/%i%9(B Ko
$B$rDj5A$7$^$9!#(B
class Oya { private int x, y; // $B0z?t$N$J$$%3%s%9%H%i%/%?(B public Oya() { x = 0; y = 0; } // $B0z?t$N$"$k%3%s%9%H%i%/%?(B public Oya(int x, int y) { this.x = x; this.y = y; } // x $B$N%;%C%?!<(B public void setX(int x) { this.x = x; } // y $B$N%;%C%?!<(B public void setY(int y) { this.y = y; } // x $B$N%2%C%?!<(B public int getX() { return x; } // y $B$N%2%C%?!<(B public int getY() { return y; } }
$B$3$3$G$O!"%3%s%9%H%i%/%?$,Fs$DDj5A$5$l$F$$$^$9!#%3%s%9%H%i%/%?$rL@<(E*$KDj5A$7$F$$$J$$>l9g$O!"0z?t$N$J$$%3%s%9%H%i%/%?$,<+F0E*$K $BD>Ns2=2DG=$G$J$$(B $B$=$l$G$O!"(B $B%U%!%$%k$K=q$-9~$_$^$7$?$+$i!"$"$H$GI|85$G$-$^$9!#I|85$9$k=hM}$r:n$j$^$9!#(B $B%G%U%)%k%H$ND>Ns2=$h$j$b!"%+%9%?%^%$%:$9$kItJ,$NJ}$,B?$$>l9g$K$O!"(B $B$3$N>l9g$O!"Ev3:%*%V%8%'%/%H$N%/%i%97?$O<+F0E*$KF~=PNO$5$l$^$9$N$G!"I,MW$J%U%#!<%k%I$NCM$@$1$BD>Ns2=2DG=$J%5%V%/%i%9(B
Oya
$B%/%i%9$r7Q>5$7$F!"D>Ns2=2DG=$J%5%V%/%i%9(B Ko
$B$r:n$j$^$9!#(B Oya
$B%/%i%9$,D>Ns2=2DG=$G$O$J$$$N$G%+%9%?%^%$%:$7$F?F%/%i%9$ND>Ns2=$NLLE]$b8+$J$1$l$P$J$j$^$;$s!#(B
import java.io.*;
class Ko extends Oya implements Serializable {
private String name;
// $B%3%s%9%H%i%/%?(B
public Ko(int i, int j, String str) {
this.name = str;
super.setX(i);
super.setY(j);
}
// name $B$N%2%C%?!<(B
public String getName() {
return name;
}
// $BD>Ns2=$N%+%9%?%^%$%:(B
private void writeObject(ObjectOutputStream out)
throws IOException {
// $B%G%U%)%k%H$ND>Ns2=%W%m%;%9(B
out.defaultWriteObject();
// $BDI2C$ND>Ns2==hM}(B
out.writeInt(super.getX());
out.writeInt(super.getY());
}
// $BD>Ns2=I|85$N%+%9%?%^%$%:(B
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
// $B%G%U%)%k%H$ND>Ns2=I|85$N%W%m%;%9(B
in.defaultReadObject();
// $BDI2C$NI|85=hM}(B
int x = in.readInt();
int y = in.readInt();
super.setX(x);
super.setY(y);
}
}
Ko
$B%/%i%9$r%$%s%9%?%s%92=$7$F!"%*%V%8%'%/%H$r%U%!%$%k$KBP$7$FF~=PNO$7$F$_$^$9!#(B$B%*%V%8%'%/%H$N=PNO%9%H%j!<%`(B
SerializeTest.java
:
import java.io.*;
class SerializeTest {
public static void main(String[] args)
throws IOException {
Ko obj = new Ko(10, 20, "$B;R6!(B");
// $BD>Ns2=$9$k%*%V%8%'%/%H$N%A%'%C%/(B
System.out.println("----$BD>Ns2=!*(B----");
System.out.println(obj.getName());
System.out.println(obj.getX());
System.out.println(obj.getY());
// $B%*%V%8%'%/%H$r%U%!%$%k$K=q$-9~$_(B
FileOutputStream outFile = new FileOutputStream("tmp");
ObjectOutput out = new ObjectOutputStream(outFile);
out.writeObject(obj);
out.flush();
out.close();
outFile.close();
}
}
$B%*%V%8%'%/%H$NF~NO%9%H%j!<%`(B
DeserializeTest.java
:
import java.io.*;
class DeserializeTest {
public static void main(String[] args)
throws IOException, ClassNotFoundException {
// $B%U%!%$%k$+$i%*%V%8%'%/%H$rFI$_9~$s$GI|85(B
FileInputStream inFile = new FileInputStream("tmp");
ObjectInputStream in = new ObjectInputStream(inFile);
Ko restore = (Ko)in.readObject();
in.close();
inFile.close();
// $BI|85$5$l$?%*%V%8%'%/%H$N%A%'%C%/(B
System.out.println("-----$BI|85!*(B-----");
System.out.println(restore.getName());
System.out.println(restore.getX());
System.out.println(restore.getY());
}
}
$B
C:\IO>javac Ko.java
C:\IO>javac SerializeTest.java
C:\IO>javac DeserializeTest.java
C:\IO>java SerializeTest
----$BD>Ns2=!*(B----
$B;R6!(B
10
20
C:\IO>java DeserializeTest
-----$BI|85!*(B-----
$B;R6!(B
10
20
C:\IO>
SerializeTest
$B$G%$%s%9%?%s%92=$7$?(B Ko
$B7?%*%V%8%'%/%H$,%U%!%$%k$KJ]B8$5$l!"JL$N%"%W%j%1!<%7%g%s$G$"$k(B DeserializeTest
$B$GI|85$5$l$F$$$^$9!#%*%V%8%'%/%H$r;}B3E*(B (persistent) $B$K%"%/%;%9$G$-$k$h$&$K$J$C$F$$$^$9!#(BExternalizable
$B%$%s%?%U%'!<%9(BExternalizable
$B%$%s%?%U%'!<%9$rreadExternal()
$B$rMQ$$$?J}$,NI$$$G$7$g$&!#%*%V%8%'%/%H$r:F9=C[$9$k$?$a$N>pJs$,8B$i$l$F$*$j%G%U%)%k%H$N5!9=$G$O>iD9$J>l9g$d!"(B JavaVM $B$N%G%U%)%k%H%U%)!<%^%C%H$G$O$J$/!"D>Ns2=$9$k%/%i%9$G%U%)!<%^%C%H$rL@<($7$?$$>l9g$O!"$3$A$i$G
Copyright © 2002 SUGAI, Manabu. All Rights Reserved.
SEO
[PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送