Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Java-Bean. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ, Π° Π·Π°ΡΠ΅ΠΌ, ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ; Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Seri-alizable (ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π² Π½Π΅ΠΌ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°). ΠΠΎΠ³Π΄Π° Π² ΡΠ·ΡΠΊ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΠ°ΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ-ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΡΠΈΠΏΠΎΠ², Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ°ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Class, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Output-Stream, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π²Π»ΠΎΠΆΠΈΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ObjectOutputStream. ΠΠΎ ΡΡΡΠΈ, Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° writeObject() ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈ Π΄Π°Π»Π΅Π΅ Π²Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΠ΅ Π΅Π³ΠΎ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ OutputStream. ΠΠ»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π΄ΡΡΡΠΎΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ObjectlnputStream Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° InputStream, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ readObject(). ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Object, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΡΡΠ»ΠΎΠΊ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ ΠΎΠ±ΡΠ°Π· ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½ΠΎ ΠΈ Π²ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , ΠΈ Ρ. Π΄. ΠΡΠΎ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΏΠ°ΡΡΠΈΠ½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²Β», ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΡΠ»Π΅Π½Ρ. ΠΡΠ»ΠΈ Π±Ρ Π²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΡΡΡΠ»ΠΎΠΊ ΡΡΠ°Π»ΠΎ Π±Ρ Π²Π΅ΡΡΠΌΠ° Π½Π΅Π»Π΅Π³ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Java Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π΅Ρ β ΡΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ, Π² ΡΡΠΎΡ ΡΠ·ΡΠΊ Π²ΡΡΡΠΎΠ΅Π½ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²ΡΠ·Π°Π½ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ΅ΠΏΠΎΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Data:
// io/Worm java
// Π’Π΅ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
import java.io.*;
import java util *;
import static net mindview util.Print.*;
class Data implements Serializable { private int n;
public Data(int n) { this n = n, }
public String toStringO { return Integer toString(n); }
}
public class Worm implements Serializable {
private static Random rand = new Random(47); private Data[] d = {
new Data(rand.nextlnt(10)). new Data(rand nextlnt(lO)), new Data(rand nextlnt(lO))
}.
private Worm next.
private char Ρ. ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ &
// Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ i == ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² public Worm(int i, char x) {
print("ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm- " + i); Ρ = x, if(--i > 0)
next = new Worm(i, (char)(x +1)),
}
public WormO {
print("ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ"),
}
public String toStringO {
StringBuilder result = new StringBuilderCβ’"); result.append(c), result.append("("); for(Data dat : d)
result.append(dat); result. appendC')"); if(next != null)
result.append(next), return result toStringO,
}
public static void main(String[] args) throws ClassNotFoundException, IOException { Worm w = new Worm(6, 'a'); printCw = " + w);
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("worm.out")); out writeObjectCWorm storage\n"), out.writeObject(w);
out closeO; // Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠΈΡΡΠΊΠ° Π±ΡΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° Object InputStream in = new ObjectlnputStrearrK
new FileInputStream("worm.out")), String s = (String)in.readObjectO, Worm w2 = (Worm)in.readObjectO. print(s + β’ "w2 = " + w2); ByteArrayOutputStream bout =
new ByteArrayOutputStream(); ObjectOutputStream out2 = new ObjectOutputStream(bout); out2.writeObject("ΠΠ°ΠΌΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Worm\n"); out2.write0bject(w); out2.flush();
ObjectInputStream in2 = new ObjectInputStream( new ByteArrayInputStream(bout toByteArrayO)); s = (String)in2 readObject(); Worm w3 = (Worm)in2.read0bject(); print(s + "w3 = " + w3);
}
} /* Output: ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm- 6 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm. 5 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm- 4 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm. 3 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm: 2 ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Worm: 1
w = :a(853) b(119).c(802) d(788) e(199):f(881) ΠΠ°ΠΌΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Worm
w2 = .a(853):b(119)-c(802)-d(788)-e(199)-f(881) ΠΠ°ΠΌΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Worm
w3 - :Π°(853):b(119):Ρ(802):d(788):Π΅(199):f(881)
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΡΠ» ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅, ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Data Π² ΠΊΠ»Π°ΡΡΠ΅ Worm ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ. (Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².) ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Worm ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ (char), ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Worm. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΅Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Worm. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ»ΠΊΠΈ next ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Worm, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ°Π·ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΡΡΠ»ΠΊΠ° next ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ null, ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ.
ΠΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΎΡΡ Π»ΠΈΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅: Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΠ°ΠΌ Π°ΠΊΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ObjectOutputStream (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°), ΠΌΠ΅ΡΠΎΠ΄ write-Object() Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π² ΠΏΠΎΡΠΎΠΊ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° (String). Π ΡΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΡΠΎ ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ DataOutputStream (ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ).
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΠΈΡΡ ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ», Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΡΠ»ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ² ByteArray. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π² Π»ΡΠ±ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π² ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠ· Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable, Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ (Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ. ΠΠ±ΡΠ΅ΠΊΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ· Π΄Π°Π½Π½ΡΡ , ΡΡΠΈΡΠ°Π½Π½ΡΡ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° InputStream.
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ΅-ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π‘ΡΠΌΠ΅Π΅Ρ Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΠΏΠΈΡΠ°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ» Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ?
Π‘Π°ΠΌΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ β ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ:
//: io/Alien java
// Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡ
import java.io.*;
public class Alien implements Serializable {} ///:-
Π€Π°ΠΉΠ» Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΡΠΎΠ·Π΄Π°ΡΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Alien, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅:
// io/FreezeAlien java
// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
import java io *,
public class FreezeAlien {
public static void main(Stnng[] args) throws Exception { ObjectOutput out = new ObjectOutputStream( new FileOutputStreamC'X file")). Alien quellek = new AlienO. out writeObject(quellek),
}
} III ~
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΠΏΡΠΎΡΡΠΎΠΌΡ ΠΏΡΡΠΈ β ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ main(), ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠ΄Π°Π²Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄, Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ12 ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ X.file. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΊΡΡΡΠ° ΠΎΡ ΡΡΠΆΠΈΡ Π³Π»Π°Π· Π² Β«ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΌΒ» ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ xfiles:
//β’ io/xfi1es/ThawAlien java
// ΠΠΎΠΏΡΡΠΊΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
// Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π·ΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
// {RunByHand}
import java io *,
public class ThawAlien {
public static void main(Strmg[] args) throws Exception { ObjectInputStream in = new ObjectInputStream(
new FileInputStream(new FileC. ". "X file"))). Object mystery = in readObjectO, System out println(mystery getClassO),
}
} /* Output
class Alien */// -
ΠΠ°ΠΆΠ΅ ΠΎΡΠΊΡΡΠ² ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π² ΠΈΠ· Π½Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° mystery, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java QVM) Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Alien.class; ΠΎΠ±ΡΠ΅ΠΊΡ Class Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Alien Π±ΡΠ΄Π΅Ρ Π² Π½Π΅ Π΄ΠΎΡΡΠ³Π°Π΅ΠΌΠΎΡΡΠΈ (Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ CLASSPATH). ΠΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ClassNotFoundException.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈΠ»ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Ρ Π΅Π³ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Externalizable Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Serializable. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π½Π΅Π³ΠΎ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°, writeExternal() ΠΈ readExternal(), ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ ΠΏΠΎΠΏΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Externalizable. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΠΊΠ»Π°ΡΡΡ Blipl ΠΈ Blip2 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΎΠ·Π°ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠΈΡ:
// io/Blips.java
// ΠΡΠΎΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Externalizable. . Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ
import java io *;
import static net mindview util Print *;
class Blipl implements Externalizable {
public BliplO {
print("ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Blipl"),
}
public void writeExternal(ObjectOutput out) throws IOException { print("Blipl writeExternal"),
}
public void readExternal(Objectlnput in)