filedao.java

来自「实现银行系统的一系列功能,比如存款取款透支查询余额等」· Java 代码 · 共 52 行

JAVA
52
字号
package tarena.bank.server;

import java.io.*;

public class FileDAO {
	//接受更新后的Account,并写入序列化文件
	public static void accept(Account account){
		//FileDAO.account=account;
		try {
			//此路径是存储客户账户序列化文件的,后缀无所谓,我用.list文件存的
			FileOutputStream outfile = new FileOutputStream(
			"C:\\Documents and Settings\\Administrator\\桌面\\bankfile\\"+account.getId()+".list");
			ObjectOutputStream oos = new ObjectOutputStream(outfile);
			oos.writeObject(account);
			oos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	//该方法是从C:\\Documents and Settings\\Administrator\\桌面\\bankfile下读取要操作的账户
	public static Account getAccount(long id, String passwd) {
		ObjectInputStream ois;
		try {
			FileInputStream infile = new FileInputStream(
					"C:\\Documents and Settings\\Administrator\\桌面\\bankfile\\"
							+ id + ".list");
			ois = new ObjectInputStream(infile);
			Account a=(Account) ois.readObject();
			ois.close();
			if(a.getPasswd().equals(passwd)&&a.type==SavingAccount.ACCOUNT_TYPE){
				return (SavingAccount)a;
			}
			else if(a.getPasswd().equals(passwd)&&a.type==CreditAccount.ACCOUNT_TYPE){
				return (CreditAccount)a;
			}
			else if(a.getPasswd().equals(passwd)&&a.type==LoanSavingAccount.ACCOUNT_TYPE){
				return (LoanSavingAccount)a;
			}
			else if(a.getPasswd().equals(passwd)&&a.type==LoanCreditAccount.ACCOUNT_TYPE){
				return (LoanCreditAccount)a;
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?