import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class TestSerializable {
/**
* @param args
* @throws IOException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws IOException,
ClassNotFoundException {
// TODO Auto-generated method stub
T t = new T();
t.k = 8;
FileOutputStream foStream = new FileOutputStream("D:\\ser.txt");
ObjectOutputStream ooStream = new ObjectOutputStream(foStream);
ooStream.writeObject(t);
ooStream.flush();
ooStream.close();
FileInputStream fiStream = new FileInputStream("D:\\ser.txt");
ObjectInputStream ois = new ObjectInputStream(fiStream);
T tRead = (T) ois.readObject();
/*
* 如果没有实现Serializable,则不能这样直接读
*/
System.out.println(tRead.i + " " + tRead.j + " " + tRead.d + " "
+ tRead.k);// 打印结果:10 9 2.3 8 没有transient
System.out.println(tRead.i + " " + tRead.j + " " + tRead.d + " "
+ tRead.k);// 打印结果: 10 0 2.3 8 有transient
}
}
/*
* 直接存入整个Object转换成字节流,写到硬盘 Serializable是标记接口,无方法
*/
class T implements Serializable {
int i = 10;
transient int j = 9;
double d = 2.3;
int k = 15;
}
分享到:
相关推荐
`Serializable`接口是Java提供的一个特殊接口,用于标记一个类的实例能够被序列化。当我们创建一个类并希望它的实例可以被序列化时,只需让该类实现这个接口即可。 以下是一个使用`Serializable`接口进行对象序列化...
当一个类实现了这个接口,它的实例就可以被转化为一串字节流,从而可以在不同的内存空间之间传输或者存储。在Android中,Intent的额外数据部分(extras)只能存储Parcelable或Serializable类型的对象,因此,当我们...
在Java编程中,`Serializable`接口是用于对象序列化的重要工具。对象序列化是指将一个对象的状态转换为字节流的过程,以便存储或通过网络进行传输。另一方面,`Stream`通常指的是I/O流,它是Java处理输入/输出数据的...
### C#中Serializable的作用与对象序列化详解 #### 一、引言 在现代软件开发中,特别是基于.NET框架的应用程序开发中,对象序列化是一项非常重要的技术。它允许将对象的状态转换为一种持久的形式(如文件或网络传输...
当数据被反序列化时,Laravel会恢复模型实例,而不是简单的字符串。 Luminark的"serializable-values"包则进一步扩展了这一功能,提供了一种更加灵活和安全的方式来处理可序列化的值。这个包可能包含了自定义的序列...
### Java Serializable(序列化)的理解和总结 #### 一、序列化的定义与目的 序列化是一种将对象的状态转换为可以存储或传输的形式的过程。在Java中,如果一个类实现了`Serializable`接口,那么该类的对象就可以被...
5. 传递后的数据只存在于`Bundle`实例中,不会持久化,当`Bundle`被销毁时,数据也会丢失。 综上所述,`Bundle` 提供了丰富的数据传递功能,无论是简单的基本类型还是复杂的对象类型,都能灵活应对。开发者可以根据...
`Serializable`特性是C#中实现序列化的关键,它标记了一个类,表明该类的对象可以被序列化。本文将深入探讨C#中的`Serializable`序列化,并介绍几种常见的序列化技术及其应用。 1. **二进制序列化** 二进制序列化...
这段代码首先创建一个MyObject实例并序列化到文件"MyFile.bin",然后从文件中反序列化回一个MyObject实例。所有成员变量,包括private的,都会被序列化和反序列化,除非显式排除。 总之,[Serializable]在C#中的...
在Android中,当一个类实现Serializable接口,那么它的实例就可以被序列化。序列化的过程是将对象转换为字节流,而反序列化则是将字节流恢复为原来的对象状态。 二、序列化的应用场景 1. 数据持久化:序列化可以将...
### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化是什么? 序列化是指将程序中的对象转换为字节流的过程,从而方便存储或传输这些对象。通常,序列化用于将对象的状态(即其实例变量的值,而非...
### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化的概念 序列化是指将程序中的对象转换为一系列字节流的过程,主要用于保存对象的状态或在网络之间传输对象。序列化的主要目的是为了能够持久化...
当一个类实现了这个接口,它的实例就可以被序列化。 **一、Java序列化** 1. **什么是序列化**:序列化是将对象的状态(属性和成员变量)转换为可以存储或传输的数据格式的过程。在Java中,通常是将对象转换为字节...
本篇将详细讲解两种常见的序列化方式:Serializable和Parcelable,并通过实例代码来加深理解。 1. **Serializable接口** `Serializable` 是Java标准库提供的一种简单的序列化方式,位于`java.io`包下。任何实现了`...
当一个类实现了`Serializable`,它的所有实例变量(除非声明为`transient`或`static`)都会被序列化。 在归档过程中,如果我们需要自定义某些字段的序列化行为,可以重写`writeObject()`方法。这个方法允许我们在...
* 在实现 Serializable 接口时,需要声明所有的实例变量,否则将无法正确地序列化对象。 * 在序列化对象时,需要将对象的所有实例变量写入到字节序列中,这样才能正确地恢复对象的状态。 * 在反序列化对象时,需要将...
虽然枚举不能作为其他类的父类,但它们默认继承了 `java.lang.Enum` 类,这意味着枚举实例可以使用 `Comparable` 和 `Serializable` 接口的方法。 此外,枚举可以实现接口,这使得它们可以具有自定义的行为。例如:...
当一个类实现了Serializable接口,那么它的实例就可以被序列化和反序列化。在Android中,Intent支持Serializable对象的传递。实现步骤如下: 1. **实现Serializable接口**:首先,你需要让你的对象类实现...