Java中的serialize接口与transient关键字
2013-04-18 19:39
218 查看
Java中的serialize接口与transient关键字 2011-10-23
22:25:52
分类: Java
package com.jd;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;
public class App {
public static void main(String[] args) {
//现在我们创建一个类的实例,并且串行化(serialize)它,然后将这个串行化对象写入磁盘
LoggingInfo logInfo = new LoggingInfo("MIKE", "MECHANICS");
System.out.println(logInfo.toString());
try {
ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("logInfo.out"));
o.writeObject(logInfo);
o.close();
} catch (Exception e) {
}
//读出上面写入文件中的串行化对像,发现transient标识的pwd属性值并不会被存储
try {
ObjectInputStream in = new ObjectInputStream(
new FileInputStream("logInfo.out"));
logInfo = (LoggingInfo) in.readObject();
System.out.println(logInfo.toString());
}
catch (Exception e) {
}
}
static class LoggingInfo implements java.io.Serializable {
private Date loggingDate = new Date();
private String uid;
private transient String pwd;
LoggingInfo(String user, String password) {
uid = user;
pwd = password;
}
public String toString() {
String password = null;
if (pwd == null) {
password = "NOT SET";
} else {
password = pwd;
}
return "logon info: \n " + "user:
" + uid +
"\n logging date : " + loggingDate.toString() +
"\n password: " + password;
}
}
}
总之,transient关键字是为了安全性,防止这种类型的数据在IO中存储(例如网络传输或本地存盘)
22:25:52
分类: Java
package com.jd;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;
public class App {
public static void main(String[] args) {
//现在我们创建一个类的实例,并且串行化(serialize)它,然后将这个串行化对象写入磁盘
LoggingInfo logInfo = new LoggingInfo("MIKE", "MECHANICS");
System.out.println(logInfo.toString());
try {
ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("logInfo.out"));
o.writeObject(logInfo);
o.close();
} catch (Exception e) {
}
//读出上面写入文件中的串行化对像,发现transient标识的pwd属性值并不会被存储
try {
ObjectInputStream in = new ObjectInputStream(
new FileInputStream("logInfo.out"));
logInfo = (LoggingInfo) in.readObject();
System.out.println(logInfo.toString());
}
catch (Exception e) {
}
}
static class LoggingInfo implements java.io.Serializable {
private Date loggingDate = new Date();
private String uid;
private transient String pwd;
LoggingInfo(String user, String password) {
uid = user;
pwd = password;
}
public String toString() {
String password = null;
if (pwd == null) {
password = "NOT SET";
} else {
password = pwd;
}
return "logon info: \n " + "user:
" + uid +
"\n logging date : " + loggingDate.toString() +
"\n password: " + password;
}
}
}
总之,transient关键字是为了安全性,防止这种类型的数据在IO中存储(例如网络传输或本地存盘)
相关文章推荐
- Java中的serialize接口与transient关键字
- Java中的serialize接口与transient关键字
- Java transient 关键字
- Java transient关键字
- Java关键字transient和volatile小结
- 干了这杯Java之transient关键字
- Java中的transient,volatile和strictfp关键字
- Java transient关键字使用小记
- Java transient关键字
- Java千百问_03基础语法(012)_transient关键字有什么用
- Java关键字transient和volatile小结
- 黑马程序员--Java学习日记之面向对象(多态,接口和其他关键字)
- Java关键字transient和volatile小结(转)
- Java中Transient (用于将相关字段不被Serialized)关键字解析(转)
- java关键字Transient
- Java中的transient,volatile和strictfp关键字
- Java字符串 详;List 接口;Staic 关键字;Super关键字;
- Java transient关键字使用小记
- 黑马程序员_java的继承性- 继承-final关键字-抽象类-接口-多态-异常-包-多线程-
- java中不常见的关键字:strictfp,transient