我正在尝试实现一个“帐户”列表的加载/保存,其方法与我成功使用的一个HashMap类似。
背景:
private List<Account> accounts;
public AccountManager() {
try {
accounts = LoadSave.loadAccounts();
} catch (IOException e) {
e.printStackTrace();
}
}
在这里我想设置我的帐户列表包括保存的帐户。
加载/保存实现:
public static void saveAccounts(List<Account> 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<Account> loadAccounts() throws IOException {
List<Account> accounts = null;
try {
FileInputStream fis = new FileInputStream("accounts.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
accounts = (List<Account>) 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文件没有保存的帐户,因为该功能是在稍后的方法中实现的,因此给出了以下例外情况:
我尝试在捕获EOFExceptions时将account设置为新的ArrayList,但它仍然抛出EOFException。我希望能够在打开accounts manager窗口时加载帐户,因此我需要能够在构造函数中加载帐户。
能够在填充文件时加载帐户或使用以下代码将帐户设置为空的ArrayList:
public static List<Account> loadAccounts() throws IOException {
List<Account> accounts = null;
try {
File file = new File("accounts.ser");
if (file.length() == 0) {
accounts = new ArrayList<>();
} else {
FileInputStream fis = new FileInputStream("accounts.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
accounts = (List<Account>) ois.readObject();
ois.close();
fis.close();
}
}
catch(IOException ioe) {
ioe.printStackTrace();
}
catch(ClassNotFoundException c) {
System.out.println("Class not found");
c.printStackTrace();
}
return accounts;
}
我只需要简单地检查文件的长度,如果它不为零,则返回对象,如果它为零,则返回一个空的ArrayList。
问题内容: 包括: all Spring libs, Apache Tomcat 7.0 library 在构建路径中 但它仍然给出错误: 在“ org.sprintframework.web-3.1.0.M1.jar”中,我可以看到“ org.springframework.web.context.ContextLoaderListener”。 Google上的某个人说应该包含spring.ja
发布问题 更新问题 设置问题悬赏 获取问题列表 获取一个问题详情 删除一个问题 获取用户发布的问题列表 发布问题 POST /questions 输入 字段 类型 描述 subject 字符串 必须,问题主题或者说标题,不能超过 255 字节 ,必须以 ? 结尾。(不区分全角或者半角) topics 数组 必须,绑定的话题,数组子节点必须符合 { "id": 1 } 的格式。 body 字符串
问题内容: 我使用非常简单的代码返回XML 但是,出现以下错误 请帮忙。谢谢 问题答案: 运行时出现NoSuchMethodError表示你使用的库版本与生成代码所针对的版本不同。 在你的情况下,Spring是元凶。在运行时检查类路径上的内容,并确保以下各项: 版本与编译时间罐相同 如果存在多个版本,请删除不需要的版本
主要内容:什么是安全函数(safe function),如何取消安全函数的限制在 VS(Visual Studio)下编译C语言程序,如果使用了 scanf()、gets()、strcpy()、strcat() 等与字符串读取或操作有关的函数,有时候VS会报错,提示该函数可能不安全,并且建议替换为带有 后缀的安全函数,如下图所示: 什么是安全函数(safe function) scanf()、gets()、fgets()、strcpy()、strcat() 等都是C语言自带
主要内容:前言,粘包,拆包前言 粘包问题:一个请求里面带有多个响应,多个消息粘再一起给你发送回来; 拆包问题:一个消息拆成多个请求发送回来; 粘包 其中 一直递归调用,最终处理粘包问题核心代码 拆包 50生产者|60如何处理 有两种地方可能会发生拆包: 消息体的size 消息体 1. 消息体的size 2. 消息体
问题内容: 我试图在Spring Example上发布并运行简单的Spring应用程序。 我正进入(状态 我已经安装了spring.jar,spring-webmvc.jar和所有其他所需的jar,因此不确定为什么会收到此错误。 这是我的web.xml文件 和我的Spring-servlet.xml文件 我不确定这里出了什么问题,将不胜感激。我已经遍历了springsource论坛和有关SO的其他
问题内容: 我有两个值,和: 和ArrayList: 假设我将的敌人中的三个和五个添加到。每当我想更改数组内的变量时,例如: __数组中的 每个都 被更改,而不仅仅是index处的一个。 问题答案: 您每次将3个对 同一个 smallRed敌人的引用添加到arraylist。 解释; 可以被认为是一个内存地址(尽管比它复杂得多),因此您要多次添加相同的内存地址(例如,将相同的房屋地址添加到现实生活
问题内容: 我有一个简单的数组: 当我使用json_encode()对数组进行编码时,我得到以下信息: 我的问题是,获得 替代的原因是什么? 问题答案: “ {}”括号指定一个对象,“ []”用于根据JSON规范的数组。从内存分配的角度来看,数组没有枚举。只是数据后面跟随着更多的数据,另一方面,对象具有带有名称的属性,并且数据已分配给这些属性,因此,要对此类对象进行编码,还必须传递正确的属性名称。