zoukankan      html  css  js  c++  java
  • 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()创建好深层的路径,然后再创建
  • 相关阅读:
    think in java
    TASLock TTASLock
    多线程
    jenkins unable to delete file
    ubuntu sun-jdk
    py2exe
    memcached安装
    redis安装
    ubuntu安装ssh
    mysql远程访问
  • 原文地址:https://www.cnblogs.com/blueness-sunshine/p/4912010.html
Copyright © 2011-2022 走看看