📄 writeaccounttofile.java
字号:
package readWriteAccount;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import model.Account;
import model.CreditAccount;
import model.LoanCreditAccount;
import model.LoanSavingAccount;
import model.SavingAccount;
public class WriteAccountToFile {
private String fileName;
private Map<Long,Account> accountList=null;
public WriteAccountToFile(String fileName){
this.fileName=fileName;
}
//将文件中的账户信息读到集合中,返回集体类型
public HashMap<Long,Account> readAccount(){
accountList=new HashMap<Long,Account>();
//将银行全部账户读到集合中
ObjectInputStream in=null;
try {
in=new ObjectInputStream(new FileInputStream(fileName));;
while(true){
Object o=in.readObject();
Account c=(Account)o;
//System.out.println(c);
accountList.put(new Long(c.getId()),c);
}
} catch (IOException e) {
//System.out.println("文件是空的。。。。。。。");
// accountList=new HashMap<Long,Account>();
// return (HashMap<Long, Account>) accountList;
} catch (ClassNotFoundException e) {
//e.printStackTrace();
}
finally{
try {
if (in!=null) in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//文件读出成功,显示下从文件读出来的账户信息
// showAccountList(accountList);
return (HashMap<Long, Account>) accountList;
}
//将集合写入到文件中去
public void writeAccount(Map<Long,Account> accountList){
ObjectOutputStream out=null;
try {
out = new ObjectOutputStream(new FileOutputStream(fileName));
Collection c=accountList.values();
Iterator it=c.iterator();
while(it.hasNext()){
out.writeObject(it.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if (out!=null) out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//写入文件成功,显示下写入内容
showAccountList(accountList);
}
/**
* 显示所有账户
*/
public void showAccountList(Map<Long,Account> accountList) {
System.out.println("==============调用show()方法====================");
Collection cs = accountList.values();
Iterator it = cs.iterator();
while (it.hasNext()) {
Account account = (Account) it.next();
if (account instanceof LoanCreditAccount) {// 贷款信用账户
// LoanCreditAccount
System.out.println("账号:" + account.getId() + "\t户名:"
+ account.getName() + "\t是贷款信用账户-----》" + "\t货款:"
+ ((LoanCreditAccount) account).getLoan() + "\t透支:"
+ ((LoanCreditAccount) account).getCeiling()
+ "\t账户余额:"
+ ((LoanCreditAccount) account).getBalance());
} else if (account instanceof LoanSavingAccount) {// 贷款储蓄账户
// LoanSavingAccount
System.out.println("账号:" + account.getId() + "\t户名:"
+ account.getName() + "\t是贷款储蓄账户-----》" + "\t货款:"
+ ((LoanSavingAccount) account).getLoan() + "\t账户余额:"
+ ((LoanSavingAccount) account).getBalance());
} else if (account instanceof SavingAccount) {// 储蓄账户
// SavingAccount
System.out.println("账号:" + account.getId() + "\t户名:"
+ account.getName() + "\t是储蓄账户-----》" + "\t\t账户余额:"
+ ((SavingAccount) account).getBalance());
} else {
// CreditAccount 信用账户
System.out.println("账号:" + account.getId() + "\t户名:"
+ account.getName() + "\t是信用账户-----》" + "\t\t透支:"
+ ((CreditAccount) account).getCeiling()
+ "\t账户余额:" + ((CreditAccount) account).getBalance());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -