可串行化接口存在于java.io包。它是一个Marker。标记接口没有任何方法和字段。因此实现它的类不必实现任何方法。如果类希望其实例被序列化或反序列化,则类会实现它。序列化是一种将对象的状态转换为字节流的机制。序列化是使用完成的ObjectOutputStream。反序列化是相反的过程,其中字节流用于在内存中重新创建实际的 Java 对象。该机制用于持久化对象。反序列化是使用完成的ObjectInputStream。因此,它可用于将其状态保存到文件中。
声明
public interface Serializable
例子:下面的示例显示了一个实现可序列化接口的类。
Java
// Java Program to demonstrate a class
// implementing Serializable interface
import java.io.Serializable;
public static class Student implements Serializable {
public String name = null;
public String dept = null;
public int id = 0;
}
在这里,您可以看到 Student 类实现了 Serialized,但没有任何可以从 Serialized 实现的方法。
例子:下面的示例代码解释了序列化和反序列化对象.
Java
// Java program to illustrate Serializable interface
import java.io.*;
// By implementing Serializable interface
// we make sure that state of instances of class A
// can be saved in a file.
class A implements Serializable {
int i;
String s;
// A class constructor
public A(int i, String s)
{
this.i = i;
this.s = s;
}
}
public class Test {
public static void main(String[] args)
throws IOException, ClassNotFoundException
{
A a = new A(20, "GeeksForGeeks");
// Serializing 'a'
FileOutputStream fos
= new FileOutputStream("xyz.txt");
ObjectOutputStream oos
= new ObjectOutputStream(fos);
oos.writeObject(a);
// De-serializing 'a'
FileInputStream fis
= new FileInputStream("xyz.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
A b = (A)ois.readObject(); // down-casting object
System.out.println(b.i + " " + b.s);
// closing streams
oos.close();
ois.close();
}
}
输出:
20 GeeksForGeeks
必读: Java 中的序列化和反序列化
相关用法
- Java SecurityManager checkAccept()用法及代码示例
- Java SecurityManager checkAccess()用法及代码示例
- Java SecurityManager checkAwtEventQueueAccess()用法及代码示例
- Java SecurityManager checkConnect()用法及代码示例
- Java SecurityManager checkDelete()用法及代码示例
- Java SecurityManager checkExec()用法及代码示例
- Java SecurityManager checkExit()用法及代码示例
- Java SecurityManager checkLink()用法及代码示例
- Java SecurityManager checkListen()用法及代码示例
- Java SecurityManager checkMemberAccess()用法及代码示例
- Java SecurityManager checkMulticast()用法及代码示例
- Java SecurityManager checkPackageAccess()用法及代码示例
- Java SecurityManager checkPackageDefinition()用法及代码示例
- Java SecurityManager checkPermission()用法及代码示例
- Java SecurityManager checkPrintJobAccess()用法及代码示例
- Java SecurityManager checkPropertiesAccess()用法及代码示例
- Java SecurityManager checkPropertyAccess()用法及代码示例
- Java SecurityManager checkRead()用法及代码示例
- Java SecurityManager checkSecurityAccess()用法及代码示例
- Java SecurityManager checkSetFactory()用法及代码示例
- Java SecurityManager checkSystemClipboardAccess()用法及代码示例
- Java SecurityManager checkTopLevelWindow()用法及代码示例
- Java SecurityManager checkWrite()用法及代码示例
- Java SecurityManager getClassContext()用法及代码示例
- Java SecurityManager getSecurityContext()用法及代码示例
注:本文由纯净天空筛选整理自Ganeshchowdharysadanala大神的英文原创作品 Serializable Interface in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。