package c12;
import java.io.*;
import java.util.*;
public class Serializableone implements Serializable//TestVector
{
private Vector vect=new Vector();
public void add(Object obj)
{
this.vect.add(obj);
}
public void print()
{
System.out.println(this.vect);
}
public static void main(String[] args)
{
try {
/* 将对象写到一个文件里 */
FileOutputStream objfile = new FileOutputStream("testvector.obj");
/* 创建一个输出流 */
ObjectOutputStream p = new ObjectOutputStream(objfile);
/* 创建一个TestVector对象 */
Serializableone tv =new Serializableone ();
/*给Vector写入几String个对象*/
tv.add("One");
tv.add("Two");
tv.add("Three");
p.writeObject(tv); // 把tv写入流
p.flush();
objfile.close(); // 关闭文件对象
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
package c12;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class Serializabletwo
{
public static void main (String[] args)
{
try
{
/* 打开文件,读取Vector 存放的对象数据 */
FileInputStream objfile = new FileInputStream("testvector.obj");
ObjectInputStream q = new ObjectInputStream(objfile);
/* 获取对象原始数据 */
Serializableone myvector = (Serializableone)q.readObject();
myvector.print();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用。
这些函数的实现体在DLL中,JDK的源代码中并不包含,你应该是看不到的。对于不同的平台它们也是不同的。这也是java的底层机制,实际上java就是在不同的平台上调用不同的native方法实现对操作系统的访问的。