java对象序列化并存储到文件中
● 如何将一个Java对象序列化到文件里
使用输入输出流,,一个是ObjectOutputStream 对象,ObjectOutputStream 负责向指定的流中写入序列化的对象。当从文件中读取序列化数据时,主要需要两个对象,一个是FileInputStream ,一个是ObjectInputStream 对象,ObjectInputStream 负责从指定流中读取序列化数据并还原成序列化前得对象。另外,序列化的读取数据与写入的顺序相同,比如我们序列化时先写入数据A ,再写入B ,最后写入C ;那么我们再读取数据的时候,读取到的第一个数据为A ,读取到的第二个数据为B ,最后读取到的数据为C ,即:先写入先读取的原则。
package com.genersoft.enetbank.settlement.pubbean; import org.loushang.next.dao.Column;
import org.loushang.next.dao.Table;
import org.loushang.next.dao.Transient;
import org.loushang.next.data.Rule;
import org.loushang.next.data.StatefulDatabean; import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map; /**
* <p>Create Date: 2018-2-27</p>
* <p>Copyright : Genersoft Java Group(c)</p>
* ************************************************************/
@Table(tableName = "EB_BATCH_PAY", keyFields = "APPLY_ID")
public class BatchPay extends StatefulDatabean implements Serializable { //审批状态
public static final String ADV_DRAW_STATUS_SAVE = "01"; // 申请
public static final String ADV_DRAW_STATUS_SUBMIT = "02"; // 审批中
public static final String ADV_DRAW_STATUS_CHECK_RETURN = "04"; // 审批退回
public static final String ADV_DRAW_STATUS_ABANDONED = "09"; // 作废 public static final String ADV_DRAW_STATUS_REFUSED = "07"; // 财司已拒绝
public static final String ADV_DRAW_STATUS_CHECKED = "05"; // 网银到柜面后落地未受理:财司受理中
public static final String ADV_DRAW_STATUS_INPROCESSING = "11"; //财司已受理(柜面审批及发送银行过程都为此状态) public static final String BILL_STATUS_GMPAYDONE = "08"; // 已支付
public static final String BILL_STATUS_GMPAYBACK = "12"; // 支付失败退回 /*
申请内码[YYYYMMDD+12位流水号]
*/
@Rule(value = "require")
@Column(name = "APPLY_ID")
private String applyId; /*
付款批号[预留
]
*/
@Column(name = "BATCH_CODE")
private String batchCode; /*
申请编号[]
*/
@Column(name = "BZNS_CODE")
private String bznsCode; /*
客户编号[]
*/
@Column(name = "CUST_CODE")
private String custCode; /*
业务类型[对私批量业务类型
]
*/
@Column(name = "BZNS_TYPE")
private String bznsType; /*
申请来源[申请来源:1-Excel导入、2-外部申请
]
*/
@Column(name = "APP_SOURCE")
private String appSource; /*
急缓标志[【客户选择,用以匹配发送方式,0-普通;1-加急】
]
*/
@Column(name = "FAST_FLAG")
private String fastFlag; /*
所属机构[目前默认为客户账户的机构
]
*/
@Column(name = "ORG_ID")
private String orgId; /*
所属机构名称[目前默认为客户账户的机构
]
*/
@Transient
private String custName; /*
组织名称
]
*/
@Transient
private String orgName; /*
客户账户编号[]
*/
@Column(name = "CUST_ACC_CODE")
private String custAccCode; /*
客户账户名称[冗余
]
*/
@Column(name = "CUST_ACC_NAME")
private String custAccName; /*
客户银行账号[]
*/
@Column(name = "CUST_BANK_ACC")
private String custBankAcc; /*
币种[]
*/
@Column(name = "CURCD")
private String curcd; /*
应付金额[]
*/
@Column(name = "PAY_AMT")
private BigDecimal payAmt; /*
实付金额[]
*/
@Column(name = "PAID_AMT")
private BigDecimal paidAmt; /*
汇率[]
*/
@Column(name = "EXCHANGE_RATE")
private BigDecimal exchangeRate; /*
总笔数[
]
*/
@Column(name = "TOTAL_NUM")
private int totalNum; /*
成功笔数[]
*/
@Column(name = "SUS_NUM")
private int susNum; /*
失败笔数[]
*/
@Column(name = "FAIL_NUM")
private int failNum; /*
付款账户[]
*/
@Column(name = "PAY_ACC")
private String payAcc; /*
收支项目[预留
]
*/
@Column(name = "PROJECT_BUDGET")
private String projectBudget; /*
资金计划[预留
]
*/
@Column(name = "BUDGET_PLAN")
private String budgetPlan; /*
用途
用途[]
*/
@Column(name = "REMARK")
private String remark; /*
单据状态["00申请/待提交、01审批中、02审批退回、10受理中、11已受理、12财司退回
20已办结、30已作废"
]
*/
@Column(name = "BILL_STATUS")
private String billStatus; /*
经办人[]
*/
@Column(name = "OPERATOR")
private String operator; /*
经办日期[]
*/
@Column(name = "OPERATE_DATE")
private String operateDate; /*
柜面退回人[]
*/
@Column(name = "BACKER")
private String backer; /*
柜面退回日期[]
*/
@Column(name = "BACK_DATE")
private String backDate; /*
柜面退回原因[]
*/
@Column(name = "BACK_REASON")
private String backReason; /*
对应柜台业务单号[]
*/
@Column(name = "COUNTER_BILL_CODE")
private String counterBillCode; /*
时间戳[]
*/
@Column(name = "TIME_STAMP")
private String timeStamp; @Transient
private List<Map> list; /*---------------------以下为变量getset方法区域----------------------------*/
/*
申请内码[YYYYMMDD+12位流水号
]
*/
public void setApplyId(String applyId) {
this.applyId = applyId;
} /*
申请内码[YYYYMMDD+12位流水号
]
*/
public String getApplyId() {
return this.applyId;
} /*
付款批号[预留
]
*/
public void setBatchCode(String batchCode) {
this.batchCode = batchCode;
} /*
付款批号[预留
]
*/
public String getBatchCode() {
return this.batchCode;
} /*
申请编号[]
*/
public void setBznsCode(String bznsCode) {
this.bznsCode = bznsCode;
} /*
申请编号[]
*/
public String getBznsCode() {
return this.bznsCode;
} /*
客户编号[]
*/
public void setCustCode(String custCode) {
this.custCode = custCode;
} /*
客户编号[]
*/
public String getCustCode() {
return this.custCode;
} /*
业务类型[对私批量业务类型
]
*/
public void setBznsType(String bznsType) {
this.bznsType = bznsType;
} /*
业务类型[对私批量业务类型
]
*/
public String getBznsType() {
return this.bznsType;
} /*
申请来源[申请来源:1-Excel导入、2-外部申请
]
*/
public void setAppSource(String appSource) {
this.appSource = appSource;
} /*
申请来源[申请来源:1-Excel导入、2-外部申请
]
*/
public String getAppSource() {
return this.appSource;
} /*
急缓标志[【客户选择,用以匹配发送方式,0-普通;1-加急】
]
*/
public void setFastFlag(String fastFlag) {
this.fastFlag = fastFlag;
} /*
急缓标志[【客户选择,用以匹配发送方式,0-普通;1-加急】
]
*/
public String getFastFlag() {
return this.fastFlag;
} /*
所属机构[目前默认为客户账户的机构
]
*/
public void setOrgId(String orgId) {
this.orgId = orgId;
} /*
所属机构[目前默认为客户账户的机构
]
*/
public String getOrgId() {
return this.orgId;
} /*
客户账户编号[]
*/
public void setCustAccCode(String custAccCode) {
this.custAccCode = custAccCode;
} /*
客户账户编号[]
*/
public String getCustAccCode() {
return this.custAccCode;
} /*
客户账户名称[冗余
]
*/
public void setCustAccName(String custAccName) {
this.custAccName = custAccName;
} /*
客户账户名称[冗余
]
*/
public String getCustAccName() {
return this.custAccName;
} /*
客户银行账号[]
*/
public void setCustBankAcc(String custBankAcc) {
this.custBankAcc = custBankAcc;
} /*
客户银行账号[]
*/
public String getCustBankAcc() {
return this.custBankAcc;
} /*
币种[]
*/
public void setCurcd(String curcd) {
this.curcd = curcd;
} /*
币种[]
*/
public String getCurcd() {
return this.curcd;
} /*
应付金额[]
*/
public void setPayAmt(BigDecimal payAmt) {
this.payAmt = payAmt;
} /*
应付金额[]
*/
public BigDecimal getPayAmt() {
return this.payAmt;
} /*
实付金额[]
*/
public void setPaidAmt(BigDecimal paidAmt) {
this.paidAmt = paidAmt;
} /*
实付金额[]
*/
public BigDecimal getPaidAmt() {
return this.paidAmt;
} /*
汇率[]
*/
public void setExchangeRate(BigDecimal exchangeRate) {
this.exchangeRate = exchangeRate;
} /*
汇率[]
*/
public BigDecimal getExchangeRate() {
return this.exchangeRate;
} /*
总笔数[
]
*/
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
} /*
总笔数[
]
*/
public int getTotalNum() {
return this.totalNum;
} /*
成功笔数[]
*/
public void setSusNum(int susNum) {
this.susNum = susNum;
} /*
成功笔数[]
*/
public int getSusNum() {
return this.susNum;
} /*
失败笔数[]
*/
public void setFailNum(int failNum) {
this.failNum = failNum;
} /*
失败笔数[]
*/
public int getFailNum() {
return this.failNum;
} /*
付款账户[]
*/
public void setPayAcc(String payAcc) {
this.payAcc = payAcc;
} /*
付款账户[]
*/
public String getPayAcc() {
return this.payAcc;
} /*
收支项目[预留
]
*/
public void setProjectBudget(String projectBudget) {
this.projectBudget = projectBudget;
} /*
收支项目[预留
]
*/
public String getProjectBudget() {
return this.projectBudget;
} /*
资金计划[预留
]
*/
public void setBudgetPlan(String budgetPlan) {
this.budgetPlan = budgetPlan;
} /*
资金计划[预留
]
*/
public String getBudgetPlan() {
return this.budgetPlan;
} /*
用途
用途[]
*/
public void setRemark(String remark) {
this.remark = remark;
} /*
用途
用途[]
*/
public String getRemark() {
return this.remark;
} /*
单据状态["00申请/待提交、01审批中、02审批退回、10受理中、11已受理、12财司退回
20已办结、30已作废"
]
*/
public void setBillStatus(String billStatus) {
this.billStatus = billStatus;
} /*
单据状态["00申请/待提交、01审批中、02审批退回、10受理中、11已受理、12财司退回
20已办结、30已作废"
]
*/
public String getBillStatus() {
return this.billStatus;
} /*
经办人[]
*/
public void setOperator(String operator) {
this.operator = operator;
} /*
经办人[]
*/
public String getOperator() {
return this.operator;
} /*
经办日期[]
*/
public void setOperateDate(String operateDate) {
this.operateDate = operateDate;
} /*
经办日期[]
*/
public String getOperateDate() {
return this.operateDate;
} /*
柜面退回人[]
*/
public void setBacker(String backer) {
this.backer = backer;
} /*
柜面退回人[]
*/
public String getBacker() {
return this.backer;
} /*
柜面退回日期[]
*/
public void setBackDate(String backDate) {
this.backDate = backDate;
} /*
柜面退回日期[]
*/
public String getBackDate() {
return this.backDate;
} /*
柜面退回原因[]
*/
public void setBackReason(String backReason) {
this.backReason = backReason;
} /*
柜面退回原因[]
*/
public String getBackReason() {
return this.backReason;
} /*
对应柜台业务单号[]
*/
public void setCounterBillCode(String counterBillCode) {
this.counterBillCode = counterBillCode;
} /*
对应柜台业务单号[]
*/
public String getCounterBillCode() {
return this.counterBillCode;
} /*
时间戳[]
*/
public void setTimeStamp(String timeStamp) {
this.timeStamp = timeStamp;
} /*
时间戳[]
*/
public String getTimeStamp() {
return this.timeStamp;
} public String getOrgName() {
return orgName;
} public void setOrgName(String orgName) {
this.orgName = orgName;
} public List<Map> getList() {
return list;
} public void setList(List<Map> list) {
this.list = list;
} public String getCustName() {
return custName;
} public void setCustName(String custName) {
this.custName = custName;
} /*---------------------变量getset方法区域-结束----------------------------*/
}
package com.genersoft.enetbank.settlement.payapp.dao; import com.genersoft.enetbank.bill.recbill.common.BillReceiveComMethod;
import com.genersoft.enetbank.combusi.SettlementConstant;
import com.genersoft.enetbank.combusi.bean.Jssfdjb;
import com.genersoft.enetbank.combusi.commonhelp.dao.CommonHelpDao;
import com.genersoft.enetbank.common.ENBConstants;
import com.genersoft.enetbank.common.UserInfo;
import com.genersoft.enetbank.common.dao.GetSysConf;
import com.genersoft.enetbank.common.dao.TsBaseJdbcDao;
import com.genersoft.enetbank.common.dao.TsDaoFactory;
import com.genersoft.enetbank.common.exception.TsException;
import com.genersoft.enetbank.common.jszhzd.dao.Jszhzd;
import com.genersoft.enetbank.common.utils.TsUtils;
import com.genersoft.enetbank.common.utils.ValidateUtils;
import com.genersoft.enetbank.common.workflow.TsWfUtils;
import com.genersoft.enetbank.settlement.pubbean.BatchPay;
import com.genersoft.enetbank.settlement.querystapp.dao.StSettlementApp;
import com.genersoft.enetbank.settlement.stpublic.PubProduct;
import org.loushang.next.data.*;
import org.loushang.next.web.cmd.CommandContext; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.regex.Pattern; /**
* <p>Description: </p>
* <p>Create Date: 14-2-8</p>
* <p>Copyright : Genersoft Java Group(c)</p>
*
* @version 1.0
*/ /* *************************************************************
* Modifier Date Operate(AMD) Description * ************************************************************/
public class PayappDao { public static void main(String[] args) throws IOException {
BatchPay batchPay=new BatchPay();
FileOutputStream fos=new FileOutputStream("F://MyTest.txt");
ObjectOutputStream objectOutputStream=new ObjectOutputStream(fos);
objectOutputStream.writeObject(batchPay);
objectOutputStream.close();
} }
java对象序列化并存储到文件中的更多相关文章
- 关于 Java 对象序列化您不知道的 5 件事
数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处. 关于本系列 您觉得自己懂 Java 编程?事实上,大多数 ...
- 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事
几年前,.当一个软件团队一起用 Java 书面申请.我认识比一般程序猿多知道一点关于 Java 对象序列化的知识所带来的优点. 关于本系列 您认为自己懂 Java 编程?其实,大多数程序猿对于 Jav ...
- (转)关于 Java 对象序列化您不知道的 5 件事
关于 Java 对象序列化您不知道的 5 件事 转自:http://developer.51cto.com/art/201506/479979.htm 数年前,当和一个软件团队一起用 Java 语言编 ...
- Java对象序列化文件追加对象的问题,以及Java的读取多个对象的问题解决方法。
这几天做一个小的聊天项目用到对象序列化的知识,发现对象序列化不能像普通文件一样直接追加对象.每次写入对象都会被覆盖.弄了2个多小时终于解决了.Java默认的对象序列化是每次写入对象都会写入一点头ace ...
- Java对象序列化剖析
对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...
- 理解Java对象序列化
http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...
- 理解Java对象序列化(二)
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Th ...
- java 对象序列化 RMI
对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中.JVM停止之后,这些状态就丢失了.在很多情况下,对象的内部状态是需要被持久化下来的.提到持久化,最直接的做法是保存到文件系统或是数 ...
- Java对象序列化入门
Java对象序列化入门 关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制 ...
随机推荐
- Flask-login 例子
################################################################################ from flask.ext.logi ...
- jinjia2-HTML 转义
当从模板生成 HTML 时,始终有这样的风险:变量包含影响已生成 HTML 的字符.有两种 解决方法:手动转义每个字符或默认自动转义所有的东西. Jinja 两者都支持,使用哪个取决于应用的配置.默认 ...
- 如何查看appPackage和启动appActivity
安装apk,模拟器或真机中在前台运行该应用程序,获取appPackage,即应用包名 appPackage: adb shell dumpsys activity | find "mFoc ...
- 如果你的电脑想升级并且支持m.2接口
便宜啊,赶紧入手. 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论
- Windows Qt 项目中文乱码
在头文件中加入 #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif
- SaaS领域如何分析收入增长?
SaaS领域如何分析收入增长? 今天我们试着将其模式运用到收入增长上进行分析.这对常规收入的计算会极有帮助,例如企业级应用软件(SaaS)或消费者订阅业务. 列举某公司通过月度订阅获得营收为例,为了更 ...
- CentOS 7下限制ip访问
此教程的作用:设置SSH只允许特定用户从特定的IP登录,其它未经允许的用户和IP都不能登录 示例1:只允许192.168.0.222登录192.168.1.81 # vim /etc/hosts.al ...
- LODOP中用ADD_PRINT_IMAGE缩放非图片超文本
LODOP中HTML,URL,带有img标签的IMAGE,TBALE等打印项都属于超文本.关于LODOP中的纯文本和超文本,可查看本博客相关博文:LODOP中的纯文本和超文本打印项 ADD_PRINT ...
- swift 第七课 xib 约束的优先级
前期要实现 一个自适应的label 的时候,就知到xib 约束是有优先级的,一直为深入研究: 乘写这个 博客的机会 ,试验下xib 约束的等级 …… 抱歉要查资料,在重新实践,先把主要浏览的网页 连接 ...
- Flutter中的基础组件之一
一.Text文本组件(单一格式的文本) 是具有单一风格的文本字符串,可以跨多行显示,也可全部显示在同一行中,具体显示样子,取决于布局约束. 常用属性: 1.overflow : TextOverflo ...