JAVA序列化的两种方式【转贴】
JAVA序列化的两种方式
//大家都知道Serializable是一个mark interface,告诉JVM这个对象可以被转换成二进制流来传输.
//Serializable 在我们实现这个接口的时候,我们可以使用4个私有方法来控制序列化的过程:
//我们来看一个例子:
public class FooImpl implements java.io.Serializable
{
private String message;
public String getFoo()
{
return message;
}
public void setMessage( String message )
{
this.message = message;
}
private void writeObject( java.io.ObjectOutputStream out ) throws IOException
{
System.out.println( "writeObject invoked" );
out.writeObject( this.message == null ? "hohohahaha" : this.message );
}
private void readObject( java.io.ObjectInputStream in ) throws IOException, ClassNotFoundException
{
System.out.println( "readObject invoked" );
this.message = (String) in.readObject();
}
private Object writeReplace() throws ObjectStreamException
{
System.out.println( "writeReplace invoked" );
return this;
}
private Object readResolve() throws ObjectStreamException
{
System.out.println( "readResolve invoked" );
return this;
}
public Object serialize() throws IOException, ClassNotFoundException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( this );
ByteArrayInputStream bais = new ByteArrayInputStream( baos.toByteArray() );
ObjectInputStream ois = new ObjectInputStream( bais );
return ois.readObject();
}
public static void main(String[] args) throws IOException, ClassNotFoundException
{
FooImpl fooimpl = new FooImpl();
fooimpl.se
相关文档:
变量是Java 程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。此外,所有的变量都有一个作用域,定义变量的可见性,生存期。
声明一个变量
一、 静态初始化
在Java 中,所有的变量必须先声明再使用。基本的变量声明方 ......
文件对象的生成和文件的创建
/*
* ProcessFileName.java
*
* Created on 2006年8月22日, 下午3:10
*
* 文件对象的生成和文件的创建
*/
package study.iostudy;
import java.io.*;
public class GenerateFile
{
public static void main(String ......
public class FilePath {
public void Print() {
String a = this.getClass().getClassLoader().getResource(".").getPath();
String b = this.getClass().getResource("").getPath();
String c = this.getClass().getResource(" ").getPath();
&n ......
JNI(Java+Native+Interface,Java本地接口)技术大家都不陌生,它可以帮助解决Java访问底层硬件的局限和执行效率的提高。关于JNI的开发,大多数资料讨论的都是如何用C/C++语言开发JNI,甚至于JDK也提供了一个javah工具来自动生成C语言程序框架。但是,对于广大的Delphi程序员来说,难道就不能用自己喜爱的Delphi与Java互通消 ......
import java.io.FileInputStream;
public class FileCopy{
public static void main(String[] args){
try{
&nb ......