易截截图软件、单文件、免安装、纯绿色、仅160KB

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变量

      变量是Java 程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。此外,所有的变量都有一个作用域,定义变量的可见性,生存期。
  声明一个变量
     一、 静态初始化
  在Java 中,所有的变量必须先声明再使用。基本的变量声明方 ......

Java IO学习

文件对象的生成和文件的创建
 
/*
 * ProcessFileName.java
 *
 * Created on 2006年8月22日, 下午3:10
 *
 * 文件对象的生成和文件的创建
 */
package study.iostudy;
import java.io.*;
public class GenerateFile
{
    public static void main(String ......

java中当前路径 相对路径

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 ......

用Delphi开发JNI(Java+Native+Interface)应用

JNI(Java+Native+Interface,Java本地接口)技术大家都不陌生,它可以帮助解决Java访问底层硬件的局限和执行效率的提高。关于JNI的开发,大多数资料讨论的都是如何用C/C++语言开发JNI,甚至于JDK也提供了一个javah工具来自动生成C语言程序框架。但是,对于广大的Delphi程序员来说,难道就不能用自己喜爱的Delphi与Java互通消 ......

java编程文件拷贝

import java.io.FileInputStream;
public class FileCopy{
      public static void main(String[] args){
                  try{
         &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号