ATM-PROGRAM 关于Proprties的问题

public static void turnMoney(String ToAccNo, int money){
		d = new Date();
		dateStr = noteDate.format(d);
		Properties p = new Properties();
		File f = new File("c://Account/" + ToAccNo + ".txt");
		FileInputStream fis = null;
		FileOutputStream fos = null;
		try {
			if(f.exists()){ 
                           fis = new FileInputStream(f);
                            p.load(fis);
				System.out.println(ToAccNo+ p.getProperty("name")+p.getProperty("password")+money);
				Account toAcc = new Account(ToAccNo,.getProperty("name"),.getProperty("password"), money);
				if(acc.getMoney() >= money){
					  System.out.println("转账成功!");
					  acc.setMoney(acc.getMoney() - money);
					  toAcc.setMoney(toAcc.getMoney() + money);
					  noteDateFile(dateStr + " 向" + toAcc.getName() + "账户转入" + money + "块"); 
                                         fos = new FileOutputStream(f);      
                                           p.setProperty("accNo",toAcc.getAccNo());
						p.setProperty("name", toAcc.getName());
						p.setProperty("password", toAcc.getPassword());
						p.setProperty("money",new Integer(toAcc.getMoney()).toString());
						try {
							p.store(fos, null);
						} catch (IOException e) {
							e.printStackTrace();
						}finally{
							fis.close();
							fos.close();
						}
				  }else{
					  System.out.println("余额不足,请确认后操作!");
				  }
			}else{
				System.out.println("对方卡号错误!");
			}

		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}
问题是在Properties这儿,若要先读取文件里的属性先要将文件输入IO流加载出来,然后再用Properties的get方法,但是若在此过程的中间插入了文件输出IO流关联了文
件,则会清楚该文件里的所以内容!
比如以下的写法:
File f = new File("c://Account/" + ToAccNo + ".txt");

Properties p = new Properties();

FileInputStream fis = null;

FileOutputStream fos = null;

fis = new FileInputStream(f);

fos = new FileOutputStream(f);

p.load(fis);

那么就会清空文件里的所有内容
另外,当要深层的创建一个文件时,光用file.creatNewFile()是不行的,得先创建文件路径,也就是用new File("...").mkdirs()创建好深层的路径,然后再创建
时间: 2024-10-20 23:53:48

ATM-PROGRAM 关于Proprties的问题的相关文章

C#实现ATM自动取款机

本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankDatabase(3)关于ATM屏幕显示的类:Screen(4)关于ATM键盘的类:Keypad(5)关于进钞.出钞口的类:DepositSlot(6)关于ATM出钱的类:CashDispendser(7)关于事务的基类:Transaction(8)关于查询的事务类:BalanceInquiry(9)

error: stray '\377' in program

cygwin编译报错:**.cpp:1:1: error: stray '\377' in program解决方法 2014-06-12 00:41 2061人阅读 评论(1) 收藏 举报 编译报错内容: [armeabi] Compile++ thumb: cocos2dcpp_shared <= HelloWorldScene.cpp jni/../../Classes/HelloWorldScene.cpp:1:1: error: stray '\377' in programjni/..

Lab 1: Write a java program for the triangle problem and test the program with Junit.

Tasks: 1. Install Junit(4.12), Hamcrest(1.3) with Eclipse 将两个jar包添加到工程中 2. Install Eclemma with Eclipse 3. Write a java program for the triangle problem and test the program with Junit. [Description of triangle problem]Function triangle takes three i

没有躲过的坑--你开发的软件安装在C盘Program Files (x86)下产生的异常

今天偶然发现的问题,就是自己写的win32程序安装在C盘Program Files (x86)文件夹下就会产生异常,而安装在其他文件夹,即使是D盘的Program Files (x86)下,程序也可以完美运行. 引起这个,肯定是权限的问题.这个软件运行时,需要读写数据库,以及各种缓存数据. 这就是我给自己挖的一个坑儿,相信很多人也会遇到这个问题. 就是在开发程序.VS调试的时候,总喜欢使用当前路径,或者是相对路径.即把一些数据与.exe文件放在一起. 但是安装的时候,选择的是C盘Program

异步传输ATM

ATM是一种传输模式,在这一模式中,信息被组织成信元,因包含来自某用户信息的各个信元不需要周期性出现,这种传输模式是异步的. ATM是网络新技术,它采用基于信元的异步传输模式和虚电路结构,根本上解决了多媒体的实时性及带宽问题.实现面向虚链路的点到点传输,它通常提供155Mbps的带宽.它既汲取了话务通讯中电路交换的“有连接”服务和服务质量保证,又保持了以太.FDDI等传统网络中带宽可变.适于突发性传输的灵活性,从而成为迄今为止适用范围最广.技术最先进.传输效果最理想的网络互联手段. 1.ATM的

Linux Program

vhost : web.myftp.com storage.myftp.com ...... not vhost : storage.myftp.com eg : top eg : htop eg : yes >/dev/null eg : cat /etc/passwd eg : get abc.txt the ftp command groups : all dirs login read write differences between SFTP&FTPS? FTPS : FTP o

Eclipse编译时Cannot run program &quot;make&quot;:?????

在确定环境变量配置正确(命令行运行make成功)的情况下,如果使用Eclipse编译C程序,控制台报告Cannot run program "make":?????"?错误,那么很有可能的错误是org.eclipse.cdt.core.win32_5.2.0.201202111925 (Eclipse的plugin目录下)出现了错误.可以通过替换或者重新安装CDT来解决这个问题. 参考:http://bbs.csdn.net/topics/380228213 Error: C

Coursera compiler Set up environment and Run first program

Environment, Ubuntu 14.04 set up guide Set up cool compiler 1. sudo apt-get install flex bison build-essential csh openjdk-6-jdk libxaw7-dev libc6-i386 2. Make the /usr/class directory sudo mkdir /usr/class 3. Make the directory owned by you sudo cho

Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法

原文:Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法 今天同事在做安装包的时候,有一个读取注册表路径的需求,需要根据读取的值来写配置文件,按照常规的做法,写好了注册表搜索方法,但是在测试的时候,发现总是会将系统盘下的Program Files\xxx路径读取为Program Files (x86)\xxx,如下图所示: 之后测试了如果读取非系统盘下的此路径,不会出现这个问题. 但是这个路径一般情况下都是默认安装在

一个简单的ATM程序

目前实现的功能不多,目前具有的功能,用户的登录,转账,提现,查看余额.并用装饰器检测在各个接口用户是否有登录. 好了,上代码. 这是各个文件 ==========>atm.py#Auther: He Jianhanimport os,sysroutes = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(routes) from core import main#调入主运行文件并执行main.r