exchange java对象_Java EOFExchange发布对象输入流

我正在尝试为“帐户”列表实现一个加载/保存,方法与我成功使用的哈希图方法类似。

背景:

private List accounts;

public AccountManager() {

try {

accounts = LoadSave.loadAccounts();

} catch (IOException e) {

e.printStackTrace();

}

}

在这里,我想设置我的帐户列表以包括已保存的帐户。

加载/保存实现:

public static void saveAccounts(List accounts) throws IOException {

try {

FileOutputStream fos = new FileOutputStream("accounts.ser");

ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(accounts);

oos.close();

fos.close();

System.out.printf("Saved account.");

}

catch(IOException ioe) {

ioe.printStackTrace();

}

}

public static List loadAccounts() throws IOException {

List accounts = null;

try {

FileInputStream fis = new FileInputStream("accounts.ser");

ObjectInputStream ois = new ObjectInputStream(fis);

accounts = (List) ois.readObject();

ois.close();

fis.close();

}

catch(IOException ioe) {

ioe.printStackTrace();

}

catch(ClassNotFoundException c) {

System.out.println("Class not found");

c.printStackTrace();

}

return accounts;

}

问题

是指当我第一次初始化accountmanager时,accounts.ser文件没有保存的帐户,因为该功能是在后面的方法中实现的,因此我得到以下异常:

java.io.eofe例外

在Java.Io.ObjistInPoSt流$ PeeKnPixStudio.Read(Objutin Purvest.java:2681)

在Java.Io.ObjistInPvestFielsBubDATAN中。

在Java.Io.ObjistInPoStudio.Read流头(ObjistInPoStf.java:862)

在Java.IO .ObjistInPoStut..(ObjutsIdPoStudio.java:358)

在实现过程中,SooRojyOnMy.LooSuf.Load帐号(LooSave.java:69)

会计管理器(ActudioMault.java:81)

位于sun.reflect.NativeConstructorAccessorImpl.NewInstance0(本机方法)

在Sun.Currest.NATVEngRealStopeRoopRIP.NeWistPoT(NATVECONTRORESUTIORIORIMP.JAVA:62)

在Sun中。

在Java.Lang.Exrime.构造函数. NeWistSiston(构造函数. Java:423)

在Java.Lang.class .NeWist立场(class .java:442)

在Sun。反射。MISC.Currtutul。NeWist立场(Errastutul。Java:51)

在JavaFx.fxMxFxMLooLoad $ ValueEngult.PurtalStury(FxMLoopeRel.java:927)

在JavaFX.FXML.fxMLooper-$StaseCdEclipse元素.PurtalPosits(FxMLoopeRel.java:971)

在JavaFx.fxMxFxMLoopeL$元素.PurrestSistelEtmin(FxMLoopeRel.java:220)

在JavaFx.fxMxFxMLooLoad $ ValueEngulyPurrestSistelEtEngs:FxMLoopeRel.java:744)

在JavaFx.fxMxFxMLooLoul.PrimeStistelEtmin(FxMLoopeRel.java:2707)

在JavaFx.fxMxFxMLooLoul.LaDimple(FxMLoopeRel.java:2527)

在JavaFx.fxMxFxMLooLoul.LaDimple(FxMLoopeRel.java:2441)

在JavaFX.FXML.FXMLooLoul.Load(FxMLoopeRel.java:2409)

在实施过程中。

at sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)

在Sun.Real.nTyvEndoDealOrthIMP.LoCKE(NATEVEMEDAccess ORIL .java:62)

在Sun中。

在Java.Lang.Exrime.Frut.CuoKE(方法.java:498)

在Sun。反射。MISC。蹦床。调用(Multudiu.java:71)

在sun.reflect.GenerateMethodAccessor3.invoke处(未知源)

在Sun中。

在Java.Lang.Exrime.Frut.CuoKE(方法.java:498)

在Sun.Simult.MISC.Multudi.LooCKE(Multudiu.java:275)

在JavaFX.fxMxFxMLooper-$MultHuffer-LoopK.FunKE(FxMLoopeRel.java:1771)

在JavaFx.fxMxFxMLooper-$MekOrthMeoDeVthHANDL.句柄(FxMLoopeRel.java:1657)

在COM.Sun.javaFx.Envult.CypItEnEdEnDANDLo.Debug CuffBulgEngEvin(CypIdEvEnEnthDelaL.java:86)

在COM.Sun.javaFx.EvestHANDLeMealth.Debug的BuffBrin事件(EvEnthDr.Mealth.java):238)

在COM.Sun.javaFx.EvestHANDLeMealth.Debug的BuffBrin事件(EvEnthDr.Mealth.java):191)

在COM.Sun.javaFx.Envult.CypItEngEndoServ.DeaPrdBuffBuleEngEvin(CypItEngEndoService .java:59)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:58)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Enguly.Enviut.FielnTimPL(Enviut.java:74)

在COM.Sun.javaFx.Envult. Enviut.FielEvin(Enviut.java:49)

在JavaFx.Evas.Evest.FielEvvices(事件.java:198)

在JavaFx.Field.No.FielEvices(No.java:8411)

在JavaFx.Field.Button,Field.按钮(Java:JAVA:185)

在COM.Sun.javaFx.Field.Value.ButnOrth.MousSerelPosid(ButoDealth.java:182)

在COM.Sun.javaFx.Field.Simult.Cuth.EngultSkasBase$ 1 .句柄(ErrimeSkasBase. Java:96)

在COM.Sun.javaFx.Field.Simult.Cuth.EngultSkasBase$ 1 .句柄(ErrimeSkasBase. Java:89)

在COM.Sun.javaFx.Envult.CypItEnEnEdvANDLL $ RealEnvEnEdErdRealEng.HooLeBuffBrin事件(CypIdEVENDENDELL.java:218)

在COM.Sun.javaFx.Envult.CypItEnEdEnDANDLo.Debug CuffBulgEngEvin(CypIdEvEnEnthDelaL.java:80)

在COM.Sun.javaFx.EvestHANDLeMealth.Debug的BuffBrin事件(EvEnthDr.Mealth.java):238)

在COM.Sun.javaFx.EvestHANDLeMealth.Debug的BuffBrin事件(EvEnthDr.Mealth.java):191)

在COM.Sun.javaFx.Envult.CypItEngEndoServ.DeaPrdBuffBuleEngEvin(CypItEngEndoService .java:59)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:58)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Evras.Basic EngestPoxServ.Debug事件(BaseCebug分派器.java:56)

在COM.Sun.javaFx.EvestDebug ChcIn IMP.Debug事件(EvestDebug China IMP.java:114)

在COM.Sun.javaFx.Enguly.Enviut.FielnTimPL(Enviut.java:74)

在COM.Sun.javaFx.Envult. Enviut.FielEvin(Enviut.java:54)

在JavaFx.Evas.Evest.FielEvvices(事件.java:198)

在javafx.Field.MouthMousHealth.Actudio(场景:Java:3757)

在javafx.Field.MouthMousHealth.Access 1500美元(Field.java:3485)

在javafx.FieldPrimeMouthEvin(场景:Java:1762)

在javafx.Field.场景ScEnPeelListNe.MousEnvivin(场景. Java:2494)

在COM.Sun.javax.tk.Qual.GalasVIEW EvsEngEngult.$MouSeEngultReal.Run(GalasVIEW EvestHANDL.java:394)

在COM.Sun.javax.tk.Qual.GalasVIEW EvsEngEngult.$MouSeEngultReal.Run(GalasVIEW EvestHANDL.java:295)

在Java.Security .Access控制器上。

在COM.Sun.javax.tk.Qual.GalasVIEW EvrEnDANDANL.LAMBDA $ HuffLeMexEnter事件353美元(GlassViewEventHandler . Java: 432)

在COM.Sun.javax.tk.Quest.QuangUnTooTok.RunWuffTruteDelCub(QuanguthTooKo.java:389)

在COM.Sun.javax.tk.Qual.GalasVIEW EvrEnDeNeLo.HoalMuleMouthEvin(GalasVIEW EvestHANDL.JAVA:431)

在COM.Sun.lg.lut.View .HaveMuleSeEvices(View,Java:555)

在COM.Sun.lg.lu.view .NoTyMyWork(View,Java:937)

在com.sun.glass.ui.win.winapplication.runloop(本机方法)

在COM.Sun.lg.UI.Win .WiFalp.lambda $ NULL $ 147(WiNeava. Java:177)

在Java.Lang.Trime.Run(线程.java:748)

我尝试将帐户设置为新的arraylist,以捕获eofexception,但它仍然抛出eofexception。我希望每当打开“帐户管理器”窗口时都能够加载帐户,因此我需要能够在构造函数中加载帐户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值