⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writeaccounttofile.java

📁 银行账户管理系统 简称BAM(项目介绍及源码)
💻 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 + -